301重定向ASP.NET web.config包括参数

时间:2014-11-08 17:08:07

标签: asp.net redirect url-rewriting web-config

我正在考虑使用301重定向,在Google Analytics上注意到我的域名中的一些点击到.asp页面,这些页面已不再存在,已将所有内容移至.NET设置。

花了一些时间谷歌搜索,我已经能够将以下代码添加到我的web.config。

<location path="products.asp">
    <system.webServer>
     <httpRedirect enabled="true" destination="https://www.hartnollguitars.co.uk/products.aspx" httpResponseStatus="Permanent" />
    </system.webServer>
</location> 

这很好,可以移动从products.asppproducts.aspx的所有内容,但它不会保留查询字符串,这对任何意义都很重要,即products.aspx?id=789

2 个答案:

答案 0 :(得分:8)

您必须将$Q添加到目标网址以保留查询字符串。 所以在你的情况下它应该是这样的:

<location path="products.asp">
    <system.webServer>
     <httpRedirect enabled="true" destination="https://www.hartnollguitars.co.uk/products.aspx$Q" httpResponseStatus="Permanent" />
    </system.webServer>
</location> 

答案 1 :(得分:0)

如果您拥有IIS 7或更高版本,则可以使用更强大的URL重写解决方案。使用URL Rewrite Module 2.0,您可以创建可以包含原始查询字符串的丰富重定向。在guide on IIS.net之后,您可以在屏幕截图中看到“附加查询字符串”选项。 IIS URL Rewrite Module UI

您还可以选择使用服务器变量{QUERY_STRING}。最后,如果您在规则模式中使用带有组的正则表达式,则可以使用变量{R:#},如屏幕截图所示。