2012-11-12 91 views
1

我已經給自己頭痛,試圖找出是否可以做到這一點。我有一個剛剛遷移的論壇,留下了數以千計的動態鏈接。動態URL的Mod重寫規則 - 這可能嗎?

一個典型的URL看起來像這樣:

http://domain.com/Forum_Name/b10001/25/
(「b10001」指的是論壇的ID號,最後一個數字是指頁碼。)

新的URL此格式:

http://domain.com/forums/Forum_Name.10001/
(無頁碼此外,注意到 'b',不再在ID號碼的前面。)

有沒有可以實現這一點的重寫規則?

回答

1

我不是一個重寫,但以下我讀過here,這樣的事情應該工作:

RewriteRule ^([A-Za-z0-9-]+)/b([0-9])+(/[0-9]+)?/?.*$ forums/$1.$2/ [NC,L] 

^([A-Za-z0-9-]+)說:「開始的字母數字字符串」,然後還有/b不變,其次通過[0-9]+(一個或多個數字),然後選擇/帶有一個或多個數字(頁碼(/[0-9]+)?),最後以可選斜線(/?$)結尾。

如果URL匹配該模式,則將其重寫爲forums/$1\.$2/\.轉義點(這是一個通配符),$1是第一個匹配的模式(即第一個字母數字字符串,它是論壇名稱),並且$2是第二個匹配,即b之後的數字。

最後,NC表示模式不區分大小寫,L是「最後」 - 因此您不處理任何其他規則。我認爲這是最你的,只是讀鏈接文章,並選擇您需要:)

編輯標誌:校正圖案與http://htaccess.madewithlove.be/

+0

感謝您的鏈接和解釋,這有助於很多! – Ben

0

檢查我想你要找的是什麼

RewriteRule ^([a-zA-Z0-9_]+)/b([0-9]+)/.*$ forums/$1/$2/ 

確保[]部分的內容與您用於論壇名稱和ID的格式相匹配。

對於參數,您可能希望R=301強制永久重定向。

+0

有了這個語法,如果在URL字符串的末尾還有其他東西,比如錨點哈希,它會影響嗎? – Ben