我正在运行一个遗留网站,该网站上有大量的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" />
答案 0 :(得分:1)
嗯,答案被证明是令人沮丧的简单 - 只是一个绝对的猪找到。
我没有使用REQUEST_URI(它获取整个请求的URL,包括查询字符串),而是使用了URL(只获取了没有查询字符串的URL),这似乎彻底解决了我的问题。