Apache重写和重定向
问题描述:
我需要一些帮助重写和重定向以及处理一些旧的重写代码。Apache重写和重定向
在.htaccess我有一些旧代码:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Products[/]{0,1}$ /index.php?tabs=2 [L,QSA,NC]
所以,按照我的理解,这旧的代码被重写页面,这样,如果有人在http://www.example.com/Products/键入它会显示你的index.php? tabs = 2,但该URL实际上会说http://www.example.com/Products/。但是,我想在这种情况下,没有发生实际的重新指导,所以两个页面一起存在?
所以,我需要现在要做的是......我有这个新的工作页面:
http://www.example.com/NewProducts.html?type=newest
如果有人类型:
http://www.example.com/NewProducts/
我希望新的工作页面显示:
http://www.example.com/NewProducts.html?type=newest
,但我想这个搜索引擎友好的URL在地址栏显示:
http://www.example.com/NewProducts/
我希望它也是一个重新指定,而不仅仅是一个重写,以便所有在SEO土地是正确的。
而且,如果在旧的URL有人类型:
http://www.example.com/Products/
我想要一个301重定向到新的一页新的SEO友好的URL:
http://www.example.com/NewProducts/
这里是什么我试过,但它是不正确的:
RewriteRule ^Products[/]{0,1}$ NewProducts.html?type=newest [L,QSA,NC,R=301]
RewriteRule ^ProductsNew[/]{0,1}$ NewProducts.html?type=newest [L,QSA,NC,R=301]
答
您可以使用规则是这样的:
Options -MultiViews
RewriteEngine On
RewriteRule ^Products/?$ /NewProducts/ [L,NC,R=301]
RewriteRule ^NewProducts/?$ /NewProducts.html?type=newest [L,QSA,NC]
工作很好。谢谢你的帮助! – CRAIG 2014-10-03 19:09:00
不客气,很高兴它解决了。 – anubhava 2014-10-03 19:10:53