簡體   English   中英

301重定向不起作用(我知道另一個)

[英]301 redirect not working ( another one, I know)

是的,我檢查了SO中發布的相關問題,但找不到對我有幫助的東西。

我的.htaccess已經有大量的重定向,它們可以正常工作,但是這個讓我很忙。

我有一個類似的網址:

http://example.com/comp_all.php?vid_mod=529

我改為一個更友好的:

http://example.com/comparatif-voiture/Audi/A4/529

為了做到這一點,我在.htaccess中添加了以下規則:

RewriteCond %{REQUEST_URI} ^/?comparatif-voiture [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ([0-9]+$) /comp_all.php?vid_mod=$1 [L]

而且效果很好。

現在,我想讓“舊而丑陋的” URL仍然存在,以便重定向到“好”的URL。

我嘗試了以下方法:

Redirect 301 /comp_all.php?vid_mod=529 http://example.com/comparatif-voiture/Audi/A4/529

但這不起作用。 它只是顯示“丑陋的” URL。

我是否將上面的重定向放在重寫規則之前還是之后都沒關系。

您不能在Redirect指令中使用查詢字符串。 您需要像這樣在mod_rewrite RewriteCond

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+comp_all\.php\?vid_mod=([0-9]+) [NC]
RewriteRule ^ /comparatif-voiture/Audi/A4/%1? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^comparatif-voiture/.+?/([0-9]+)/?$ /comp_all.php?vid_mod=$1 [L,QSA]

PS:我還簡化了您的其他規則。

暫無
暫無

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

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