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

301在ASP.NET web.config中重定向,包括参数,asp.net,redirect,url-rewriting,web-config,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:

我正在考虑使用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.asp
移动到
pproducts.aspx
,但它不保留查询字符串,这对于任何意义来说都是必不可少的,即
products.aspx?id=789

如果您有IIS 7或更高版本,则有一个更强大的URL重写解决方案。使用,可以创建包含原始查询字符串的富重定向。接下来,您可以在屏幕截图中看到“追加查询字符串”选项


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

您必须向目标url添加
$Q
,以保留查询字符串。 因此,在您的情况下,它应该如下所示:

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

谢谢Adam,但我在共享服务器上,因此没有完全访问权限。