2015-01-11 112 views
0

我有一個超過10年的舊網站,有很多外部鏈接。.htaccess重寫規則,用於刪除路徑中的數字ID

網址格式與top-level/show/12345/text-name類似。

我正在升級系統的過程中,新系統支持更多用戶友好的URL與12345數字ID,如;​​。

我打算遷移保留文本名稱的現有內容。

如何在.htaccess中指定刪除路徑中的/12345級別? 12345可以是任意數量,數千。

+0

你可以發佈任何你可以幫助 – MZaragoza

回答

0

更改您網站上的任何舊網址,只要它們尚未自動更改即可。確保mod_rewrite已啓用並允許工作(必須允許FollowSymLinks)。然後添加以下規則:

RewriteEngine on 
RewriteRule ^show/[0-9]+/([^/]+)/?$ show/$1 [R,L] 

更改R標誌R=301一旦你已經測試了重定向按預期工作。改變這將標記爲永久重定向。您也可能想要提醒任何用戶他們應該更新他們的書籤。

+0

謝謝@ Sumurai8,這工作完美!^show /([0-9] +)/(。+)/ show/$ 2 [R = 301]將在最後使用。 – Deuce

+0

你也應該使用'L'標誌(所以你最終得到'[R = 301,L]')。否則,Apache將繼續閱讀其他規則,這會在將來添加規則時引發奇怪的行爲。 – Sumurai8

+0

另請參閱[本幫助主題](http://stackoverflow.com/help/someone-answers)。 – Sumurai8