2016-04-05 87 views
0

我使用下面的代碼在我的.htaccess任何想法爲什麼這個正則表達式不起作用?

RewriteEngine on 
RewriteCond %{QUERY_STRING} (?:^|&)prod=\d+(?:&|$) [NC] 
RewriteRule ^dumbwaiters/proddetail\.php\?* https://www.example.com/dumbwaiters/compare-dumbwaiters/ [NC,R=301,L] 

它重定向到:

https://www.example.com/dumbwaiters/compare-dumbwaiters/?prod=143

但我不想尾隨/ PROD = 143

任何想法我做錯了什麼?

+0

不是產品ID一種重要的?你不需要它來訪問正確的產品? –

+1

沒有它們不 – WordPressDeveloper

+0

,,,,,,,,,,,,,,「升; kjhhhhhhhhhhhhhhhhhhyfrtyuop [] \」 –

回答

0

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

當請求的URI包含查詢字符串,並且目標URI 不,重寫規則的默認行爲是該查詢字符串 複製到目標URI。使用[QSD]標誌會導致查詢字符串 被丟棄。

該標誌是在2.4.0版及更高版本可用。

所以,如果你的Apache的版本就足夠了,我想下面的未經測試的代碼將工作:

RewriteRule ^dumbwaiters/proddetail\.php.* https://www.example.com/dumbwaiters/compare-dumbwaiters/ [QSD,NC,R=301,L] 
+0

我試圖與附加。如上所述,但它只是去了404頁面。 – WordPressDeveloper

相關問題