IIS URL重写模块 - 更改Qerystring参数值

时间:2014-04-01 11:25:18

标签: iis iis-7 httpmodule url-rewrite-module

如果使用重写规则,如何使用特定QueryString参数的值等于指定值,我该如何才能修改它?我只想更改此值,并且不希望影响其余的url或任何其他查询字符串参数。

例如。如果查询字符串参数ID ='123',那么我想将值重写为'abc'

无论URL的形式如何,这都应该有效:

http://mysite/page.aspx?ID=**123** should resolve to  http://mysite/page.aspx?ID=**abc**

http://mysite/?ID=**123** should resolve to  http://mysite/?ID=**abc**

http://mysite/page.aspx?name=bob&ID=**123** should resolve to  http://mysite/page.aspx?name=bob&ID=**abc**

http://mysite/page.aspx?name=bob&ID=**123**&age=33 should resolve to  http://mysite/page.aspx?name=bob&ID=**abc**&age=33

1 个答案:

答案 0 :(得分:2)

此规则适合您。

<rule name="replace query string" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
      <add input="{QUERY_STRING}" pattern="(.*)(id=123)(.*)" />
    </conditions>
    <action type="Redirect" url="{R:0}?{C:1}id=abc{C:3}" appendQueryString="false" logRewrittenUrl="true" />
</rule>