Я импортировал правила из IIRF в IIS URL Rewrite, и большинство из них, похоже, работали нормально. Я только что заметил, что в некоторых URL-адресах есть символы процента (попытка перенаправить некоторые неверные входящие ссылки с процентными закодированными символами в них). Кажется, что регулярное выражение не работает, когда там есть процент, поэтому я предполагаю, что оно пытается интерпретировать его как команду или что-то в этом роде. Не могу найти документацию по этому поводу, кто-нибудь знает?
Перезапись URL-адреса iis 7.5 - не обрабатывает символ процента «%»
Ответы (2)
Принятый ответ не сработал в моем случае, но я обнаружил другой способ настроить правило перезаписи. Это сделает 301 редирект.
Запрошенный URL-адрес: http://www.shuttercontractor.com/m/vinyl-%E2%80%8Bshutters.aspx
Целевой URL: http://www.shuttercontractor.com/m/vinyl-shutters.aspx
<rule name="301 Redirect to vinyl shutters category" stopProcessing="true">
<match url="." ignoreCase="false" />
<action type="Redirect" redirectType="Permanent" url="m/vinyl-shutters.aspx" />
<conditions>
<add input="{UNENCODED_URL}" pattern="m/vinyl-%[Ee]2%80%8[Bb]shutters\.aspx" ignoreCase="false" />
</conditions>
</rule>
По сути, совпадение будет работать для любого URL-адреса, и мы используем условие с переменной сервера UNENCODED_URL, чтобы убедиться, что шаблон совпадает перед перенаправлением.
кажется, что правила перезаписи уже отменяют кодировку URL-адреса, поэтому он больше не видит% 3E как это, а вместо этого как «‹».., поэтому использование> вместо% 3E помогает. Теперь, чтобы исправить кучу URL-адресов. аргх.
Редактировать:
Кроме того, если вы редактируете файл web.config вручную (вместо использования редактора пользовательского интерфейса), вам нужно будет использовать & lt ; для символов ‹. Вероятно, лучше использовать пользовательский интерфейс, чтобы избежать путаницы.