2014-10-02 119 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