В контексте URL Rewrite 2,0 в IIS 7.5, я хочу, чтобы иметь возможность применять канонические доменные имена для нескольких доменов для нескольких стран участка площади, как мало правил, насколько это возможно. Что-то вроде этого:IIS 7.5 Канонических правил URL Rewrite для нескольких доменов
<rule name="UK Host Name">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^company\.co\.uk$" />
<add input="{HTTP_HOST}" pattern="^company\.co$" />
<add input="{HTTP_HOST}" pattern="^company\.org$" />
<add input="{HTTP_HOST}" pattern="^company\.net$" />
<add input="{HTTP_HOST}" pattern="^company\.uk\.com$" />
<add input="{HTTP_HOST}" pattern="^www\.company\.co\.uk$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.company.co.uk/{R:1}" />
</rule>
<rule name="France Host Name">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^company\.fr$" />
<add input="{HTTP_HOST}" pattern="^company-france\.com$" />
<add input="{HTTP_HOST}" pattern="^www\.company\.fr$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.company.fr/{R:1}" />
</rule>
Проблемы с вышеизложенным, я считаю, что каждый из этих условий должен быть истинным, следовательно, logicalGrouping="MatchAll"
но если изменено MatchAny
того последним условия (с negate="true"
) будет игнорироваться, то есть мы запустите правило перенаправления, даже если пользователь посещает правильный домен.
Единственная альтернатива, о которой я могу думать, - это иметь отдельное правило перезаписи для каждого отдельного домена, но может быть огромное количество доменов, и это может стать беспорядочным. Там будет много других правил перезаписи и карт, как есть.
Как я могу создать более сложные наборы условий, а не просто все или любое?
Ух, я хочу ударить себя (и удалить свой вопрос)! – Zac