2014-01-22 127 views
0

我正在运行一个遗留网站,其中有301个重定向。为了让我的生活变得更简单,我将他们从IIS中的手动301重定向转换为使用url重写模块和一个可从数据库中生成的重写映射。URL重写IIS 7 Querystring问题

不幸的是,我现在遇到了一个障碍,因为他们的一些url带有querystrings(来自Google的adwords),而且这些总是404(因为它们与我的重写映射中的url不匹配)。

有没有办法解决这个问题,还是我必须回去手动做301s?

为了记录在案:我们使用IIS7

代码示例:

url: http://mydomain.com/widgets/?gclid=[google code] 

重写规则:

<rule name="Rewrite rule1 for News301Redirects" stopProcessing="false"> 
    <match url=".*" /> 
    <conditions> 
     <add input="{News301Redirects:{REQUEST_URI}}" pattern="(.+)" /> 
    </conditions> 
    <action type="Redirect" redirectType="Permanent" url="{C:1}" appendQueryString="false" /> 
</rule> 

地图线路:

<add key="/widgets/" value="/widgets.asp" /> 

回答

1

好了,答案被证明是令人沮丧的简单 - 只需找到一只绝对的猪。

而不是使用REQUEST_URI(它获取整个请求的URL,包括查询字符串)我已经转向使用URL(它只是得到没有查询字符串的URL),似乎已完全解决了我的问题。