Перезапись URL-адреса iis 7.5 - не обрабатывает символ процента «%»

Я импортировал правила из IIRF в IIS URL Rewrite, и большинство из них, похоже, работали нормально. Я только что заметил, что в некоторых URL-адресах есть символы процента (попытка перенаправить некоторые неверные входящие ссылки с процентными закодированными символами в них). Кажется, что регулярное выражение не работает, когда там есть процент, поэтому я предполагаю, что оно пытается интерпретировать его как команду или что-то в этом роде. Не могу найти документацию по этому поводу, кто-нибудь знает?


person Brady Moritz    schedule 24.03.2011    source источник
comment
имейте в виду: вы можете использовать IIRF на IIS7.   -  person Cheeso    schedule 24.03.2011
comment
Cheeso, я до сих пор :) но для некоторых сайтов нужно использовать встроенный.   -  person Brady Moritz    schedule 30.03.2011
comment
См. о сбое сервера: serverfault.com/questions/257680/   -  person Frosty Z    schedule 26.09.2012


Ответы (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, чтобы убедиться, что шаблон совпадает перед перенаправлением.

person NightOwl888    schedule 24.07.2013

кажется, что правила перезаписи уже отменяют кодировку URL-адреса, поэтому он больше не видит% 3E как это, а вместо этого как «‹».., поэтому использование> вместо% 3E помогает. Теперь, чтобы исправить кучу URL-адресов. аргх.

Редактировать:

Кроме того, если вы редактируете файл web.config вручную (вместо использования редактора пользовательского интерфейса), вам нужно будет использовать & lt ; для символов ‹. Вероятно, лучше использовать пользовательский интерфейс, чтобы избежать путаницы.

person Brady Moritz    schedule 24.03.2011