2014-10-02 121 views
1

我需要一些帮助重写和重定向以及处理一些旧的重写代码。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] 

回答

1

您可以使用规则是这样的:

Options -MultiViews 
RewriteEngine On 

RewriteRule ^Products/?$ /NewProducts/ [L,NC,R=301] 
RewriteRule ^NewProducts/?$ /NewProducts.html?type=newest [L,QSA,NC] 
+0

工作很好。谢谢你的帮助! – CRAIG 2014-10-03 19:09:00

+0

不客气,很高兴它解决了。 – anubhava 2014-10-03 19:10:53