簡體   English   中英

htaccess 301 redirect - 刪除查詢字符串(QSA)

[英]htaccess 301 redirect - Remove query string (QSA)

我一直在努力解決一些htaccess重定向問題。 我只是花了一些時間在堆棧上閱讀和搜索,並且無法獲得適用於我的場景的anwser。

我正在將舊客戶端網站的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]

並且它不起作用(最后仍然有查詢字符串)

謝謝!

您可以使用此規則:

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

記下尾隨? 最后用於剝離原始URI中的任何現有查詢字符串

除了anubhava的答案,您還可以使用Apache 2.4.0的QSD標志

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

http://httpd.apache.org/docs/current/en/rewrite/flags.html#flag_qsd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM