我有这个特定的请求,我必须删除URL的特定部分并将其重定向到使用URL Redirect 2.0的IIS 7中的另一个规则
要求是从www.domain.com/special/?gclid=456
删除/?gclid = 456以下是不起作用的规则。感谢您的帮助!
<rule name="CutQueryString" enabled="true" stopProcessing="true">
<match url="^(.*)\?(.*)$" />
<action type="Rewrite" url="{R:1}" appendQueryString="false" logRewrittenUrl="true" />
</rule>
答案 0 :(得分:0)
IIS Url Rewrite会将问号前面的部分视为网址,因此在您的情况special/
中,它与您的模式不匹配:^(.*)\?(.*)$
因为网址中没有问号。
所以你必须匹配几乎所有内容,然后为查询字符串添加一个条件
<rule name="CutQueryString" enabled="true" stopProcessing="true">
<match url="^(.*)/$" />
<action type="Rewrite" url="{R:1}" appendQueryString="false" />
<conditions>
<add input="{QUERY_STRING}" pattern="[a-z]+=\d+" />
</conditions>
</rule>
此规则仍然非常广泛,它会删除任何带有数值的查询字符串值对,您真的想要吗?