2011-10-09 42 views
0

嗨,我現在正在遷移一個網站。我有大約400個我需要重定向的鏈接。我知道如何在每個人的htaccess中設置一個重定向,但是會建立一個規則。我想重定向多個鏈接的規則

www.example.com/2011/10/the-news-post

重定向到

www.example.com/home/post/the-news-post

可以做到這一點嗎?如果是這樣的代碼是什麼樣的?

感謝,

格雷戈爾

+0

是否有您想使用「_」進行重定向的特定原因?我認爲使用「 - 」會更適合您的搜索引擎優化 –

+0

事實上 - 使用繼續使用'-' - 建議通過'_'。 – LazyOne

+0

我現在使用連字符 - 是一個疏忽!助教。 – gelviis

回答

0

爲了保持連字符:

RewriteRule ^[0-9]{4}/[0-9]{1,2}/([^/]+)$ [R=302,L] 

爲了改變連字符爲下劃線(這也是我不建議):

RewriteRule ^([0-9]{4}/[0-9]{1,2}/[^/]+)-([^/]+)$ $1_$2 [N] 
RewriteRule ^[0-9]{4}/[0-9]{1,2}/([^/]+)$ home/$1 [R=302,L] 

簡要說明: 第一條規則與任何UR L與日/月,然後是包含連字符的文章。它會替換連字符,然後重新運行所有重寫規則。一旦沒有連字符,它將通過第二條規則,將URL重寫爲home/articlename。

演示:http://cerebraldonkey.com/mod_rewrite2/2011/5/some-article-containing-several-hyphens

+0

謝謝模擬。我現在用所有網址上的超鏈接替換下劃線(不確定爲什麼我認爲用下劃線去做是個好主意...... DOH!)。所以我做了所有我需要的是:RewriteRule^[0-9] {4}/[0-9] {1,2} /([^ /] +)$ home/post/$ 1 [R = 302, L]? – gelviis

+0

沒錯。這就是你所需要的。 –