URL重写IIS 7 Querystring问题

时间:2014-01-22 18:00:10

标签: iis redirect rewrite

我正在运行一个遗留网站,该网站上有大量的301重定向。为了让我的生活变得更简单,我将他们从在IIS中进行手动301重定向切换到使用url重写模块和重写映射,我可以从数据库中生成。

不幸的是,我现在遇到了一个问题,因为他们的一些网址带有查询字符串(来自谷歌的adwords),而且总是404(因为它们与我的重写地图中的网址不匹配)。

有没有办法解决这个问题,还是我必须回去手动执行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 个答案:

答案 0 :(得分:1)

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

我没有使用REQUEST_URI(它获取整个请求的URL,包括查询字符串),而是使用了URL(只获取了没有查询字符串的URL),这似乎彻底解决了我的问题。