IIS URL重写规则 - 查询字符串问题

时间:2015-04-27 13:34:01

标签: regex iis url-rewriting asp-classic web-config

我在web.config文件中配置了以下URL重写规则:

<rule name="Test Rule" stopProcessing="true">
  <match url="^$" />
  <conditions>
    <add input="{QUERY_STRING}" pattern=".*item=1|all|none|first.*" />
  </conditions>
  <action type="Rewrite" url="/newsite/test.asp?{C:0}" />
</rule>     

以下源网址按预期匹配:

http://domainname?item=1

然而,在重写的URL中重复查询字符串参数“item”,即得到的查询字符串是“item = 1&amp; item = 1”。我不知道它为什么会重复。有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您是否尝试将appendQueryString="false"添加到操作属性?像这样:

<rule name="Test Rule" stopProcessing="true">
  <match url="^$" />
  <conditions>
    <add input="{QUERY_STRING}" pattern=".*item=1|all|none|first.*" />
  </conditions>
  <action type="Rewrite" url="/newsite/test.asp?{C:0}" appendQueryString="false" />
</rule>