Url重写:重定向传递查询参数

时间:2011-12-01 22:08:57

标签: iis url-rewriting iis-7.5

使用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 :(得分:0)

在IIS重写模块中单独处理URL和QueryString。

例如,如果对此URL发出了请求:http://www.mysite.com/content/default.aspx?tabid=2&subtabid=3,并且在网站级别定义了重写规则,则:

  • 规则模式将URL字符串content / default.aspx作为输入
  • QUERY_STRING服务器变量包含tabid = 2&amp; 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重写设置中“服务器变量”部分中的查询字符串。