如果使用重写规则,如何使用特定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
答案 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>