2014-01-11 259 views
1

我查看了其他發佈的問題,我似乎找不到與我的具體情況有關的答案。我已經建立了動態​​網址(rr.php?rrid = 5),我切換到搜索引擎友好的URL(RR/5 /名稱/)我有這部分工作通過htaccess將舊的動態網址重定向到seo友好的網址

RewriteRule ^rr/([0-9]+)/([a-z\+\-]+)/?$ /rr.php?rrid=$1 [L] 

我遇到的問題是實現301重定向,告訴搜索引擎該網址已經改變而不會導致重定向循環。此外,我有數百rrid =#,我想要一種方法來做301類似於上述規則,其中/名稱/部分取決於rrid =#

我知道有一種方法可以添加&重寫到上述規則,但我無法弄清楚如何編寫301重定向,而無需通過並單獨做每一個。

回答

1

您需要有一個額外的301處理規則。將此代碼放入您的DOCUMENT_ROOT/.htaccess文件:

RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} \s/+rr\.php\?rrrid=([0-9]+) [NC] 
RewriteRule^/rr/%1? [R=302,L] 

RewriteRule ^rr/([0-9]+)/?$ /rr.php?rrid=$1 [L,QSA] 
RewriteRule ^rr/([0-9]+)/([a-z+-]+)/?$ /rr.php?rrid=$1 [L,QSA] 
+0

的rrid始終是一個號碼,以便能夠在條件regrex只是([0-9 +])?此外,我試圖301重定向,但你有302只是一個臨時重定向。你有這樣做的理由嗎? – McCoy

+0

是的,它確實可以,只是更新。 – anubhava

+0

是否有302而不是301的原因? – McCoy

相關問題