URL重定向不起作用

时间:2014-01-03 14:43:41

标签: iis url-rewrite-module

我有这个特定的请求,我必须删除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>

1 个答案:

答案 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>

此规则仍然非常广泛,它会删除任何带有数值的查询字符串值对,您真的想要吗?