正确的.htaccess网址重写规则?

时间:2015-10-13 18:40:16

标签: php apache .htaccess mod-rewrite redirect

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

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

你能告诉我这个例子,所以我可以自己做其他的重定向。 我试过这个例子,但没有成功:

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

感谢您的投入 问候, Vicef

1 个答案:

答案 0 :(得分:1)

如果您想要一个匹配的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,所以搜索引擎只会从结果中删除它们。