正确的.htaccess url重写规则


Correct url rewriting rule for .htaccess?

我有一个asp语言的网店,将更新为php网店。还有很多旧网店的网址和链接存储在不同的网站上,我想恢复到新网店的主页。例如,我正在寻找正确的规则来重定向我的。htaccess文件中的以下url:

http://www.example.com/shopdisplayproducts.asp?id=15&cat=football to http://www.example.com

你能给我看看这个例子吗,这样我就可以自己做其他的重定向了。例如,我尝试过这样做,但没有成功:

rewriterrule ^shopdisplayproducts* index.php [R=301,L]

谢谢你的输入问候,Vicef

如果你想要一个完全匹配的URL,不管查询字符串是什么,你可以使用

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^shopdisplayproducts'.asp / [L,R=301]

如果你想匹配查询字符串,你需要添加两行

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{QUERY_STRING} id=15
RewriteCond %{QUERY_STRING} cat=football
RewriteRule ^shopdisplayproducts'.asp / [L,R=301]

在测试时,最好使用R=302而不是R=301,因为浏览器缓存301响应,所以如果你改变规则,你不会看到效果,因为浏览器仍然在执行缓存的结果。当你使用302时,你就不会有这个问题。因此,从302开始,一旦它工作,将其替换为301。

另外,请注意,就SERP排名而言,将所有内容重定向到新网站的主页几乎从来都不是一个好主意。如果某个页面有一个新的URL,最好重写为该URL。如果没有,你可能要考虑让它404,这样搜索引擎就会从结果中删除它们。