2014-01-14 79 views
34

我一直在努力與一些htaccess重定向。我只是花了一些時間在堆棧上閱讀和搜索,無法獲得適合我的場景的anwser。htaccess 301重定向 - 刪除查詢字符串(QSA)

我正在爲一箇舊的客戶端網站重新定向到一個新的301過程。舊的頁面有參數查詢,我想從網址中刪除。

/menu.php?idCategorie=29&idDetail=172

/new-website-page/

我有多個查詢做,這裏有幾個例子:

/menu.php?idCategorie=29&idDetail=172 
/menu.php?idCategorie=29&idDetail=182 
/menu.php?idCategorie=29&idDetail=184 
/menu.php?idCategorie=29&idDetail=256 

所有鏈接到不同的新頁面。

這裏是我的嘗試:

RewriteCond %{QUERY_STRING} idDetail=172 
RewriteRule ^menu.php(.*) /new-page/? [R=301,L] 

我得到了正確的重定向,但URL保留查詢字符串:

http://website.com/new-page/?idCategorie=29&idDetail=172 

我也試過這樣:

RewriteRule ^menu.php?idCategorie=29&idDetail=172$ http://website.com/new-page/? [L,R=301] 

這:

RewriteCond %{QUERY_STRING} idDetail=172(.*)$ 
RewriteRule ^menu.php /new-page-name?$1 [L,R=301] 

它沒有工作(仍然有查詢字符串在末尾)

謝謝!

回答

75

您可以使用此規則:

RewriteRule ^menu\.php$ /new-page-name? [L,R=301] 

中注意它是用於在原來的URI剝離任何現有的查詢字符串結束後?的。

+6

非常感謝。這工作像一個魅力!祝你有美好的一天 !! – newpxsn

+1

謝謝!我需要這個.. – sujitrulz

+0

對於簡單的'Redirect 301/old-path http:newdomaindomain.com/new-path'語法還有一個解決方案嗎? – rassoh

相關問題