Перезапись URL: параметр запроса о перенаправлении - PullRequest
0 голосов
/ 02 декабря 2011

С IIS 7.5, как я могу перенаправить

http://localhost/en/test?id=tool-37

на

http://localhost/en/tool/37

Я пишу это правило, но оно не работает

<rule name="Tool-Diseases" stopProcessing="true">
    <match url="(.+)/test.+id=([0-9]+)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Redirect" url="{R:1}/tool/{R:2}" appendQueryString="true" />
</rule>

Спасибо

1 Ответ

0 голосов
/ 15 июня 2012

URL и QueryString обрабатываются отдельно в модуле перезаписи IIS.

Например, если для этого URL был сделан запрос: http://www.mysite.com/content/default.aspx?tabid=2&subtabid=3, и на уровне сайта было определено правило перезаписи:

  • Шаблон правил получает в качестве входных данных строку URL content / default.aspx
  • Переменная сервера QUERY_STRING содержит tabid = 2 & subtabid = 3.
  • Переменная сервера HTTP_HOST содержит www.mysite.com.
  • Серверная переменная SERVER_PORT содержит 80.
  • Переменная сервера SERVER_PORT_SECURE содержит 0, а HTTPS содержит OFF.
  • Переменная сервера REQUEST_URI содержит /default.aspx?tabid=2&subtabid=3

Вы можете ввести регулярное выражение, соответствующее строке запроса, в разделе «Переменные сервера» в настройках перезаписи IIS.

...