IIS7 Url Rewrite - Могу ли я использовать stopProcessing = "false" с правилом перенаправления? - PullRequest
5 голосов
/ 08 декабря 2011

Я хочу канонизировать доменное имя, от bar.example.com до www.example.com (ну все, что не www.example.com).Сайт работает под управлением IIS7.

Проблема заключается в том, что некоторые URL-адреса имеют форму http://bar.example.com/asp/oldpage.asp?query=awesome, и уже имеют определенные правила перезаписи URL, которые перенаправляют на http://www.example.com/newpage/awesome

Я хочунапишите правило, которое перехватывает другие правила.

ЗДЕСЬ ЛОВ: у меня есть лот правил, и я хочу поместить это правило в корень сайта, но нужно переписать /перенаправлять правила в подпапках, поэтому я хочу отложить 301 до тех пор, пока не будут выполнены все правила.

Возможно ли это?У перезаписей есть возможность отложить (stopProcessing = "false"), но, похоже, это не вариант для перенаправлений.

Здесь я СОЛЬШ?

1 Ответ

6 голосов
/ 17 января 2012

К сожалению, я могу подтвердить, что отложенная обработка (stopProcessing="false") работает только с действиями перезаписи и игнорируется перенаправлением.

Если количество совпадений было небольшим - но это не так,в соответствии с вашим вопросом - я бы предложил вам объединить их, используя чередование регулярных выражений.Например:

First match: ^first/a$
Second match: ^second/b$

Combined match: ^(first/a|second/b)$

Приводит к чему-то вроде:

<rule name="MyCombinedRule">
    <match url="^(first/a|second/b)$" />
    <action type="Redirect" url="http://www.example.com/third/c" />
</rule>
...