2009-11-06 77 views
1

我正在將一個自定義編碼的博客遷移到Wordpress,並且必須設置一個將處理所有博客帖子的重定向。高級.htaccess重定向問題

我需要從這個重定向:

/oldblogdirectory/Old_Blog_Posts_Looked_Like_This.htm

到:

/newblogdirectory /新博客,帖子,看樣這/

任何想法的正則表達式像這樣的重定向?

+0

你的問題太含糊。舊網址中應該有一些標識符,我們可以將其傳遞到新網址,例如,帖子ID,日期/時間 – mauris 2009-12-07 13:23:57

回答

2

濃湯的做法肯定是要做到這一點。我做了兩個測試目錄:

oldblogdir/archives/blog_posts_look_like_this.htm 
newblogdir/archives/blog-posts-look-like-this 

並且下面的RewriteRules重定向成功。他們只是稍微改變爲甘博的建議:

RewriteEngine on 
RewriteBase/

RewriteRule ^(oldblogdir/archives/[^_]*)_(.*) $1-$2 [N] 
RewriteRule ^oldblogdir/archives/(.*?)\.htm$ newblogdir/archives/$1 [R,NC,L] 

注意,[N]導致.htaccess文件將被重新評估,直到正則表達式不再匹配。所以你應該把它放在文件的最頂端。

+0

這將導致無限遞歸。 – Gumbo 2009-12-02 14:24:46

+2

我不明白爲什麼。你能給一個例子的網址,會導致無限遞歸嗎? – Pascal 2009-12-02 15:48:26

2

試試這個mod_rewrite規則:

RewriteEngine on 
RewriteRule ^(oldblogdirectory/[^_]*)_([^_]*)_(.*) /$1-$2-$3 [N] 
RewriteRule ^(oldblogdirectory/[^_]*)_(.*) /$1-$2 
RewriteRule ^oldblogdirectory/(.+)\.htm$ /newdirectory/$1/ [L,R=301] 

但對於大寫改爲小寫轉換你要麼需要像internal tolower function一個映射,或者你使用PHP兩者。

+0

這似乎不起作用。有什麼建議麼? – TWLATL 2009-11-30 13:55:27

+0

@SerpicoLugNut:你能詳細說明一下嗎? – Gumbo 2009-11-30 15:27:03

+0

當我使用它時,它不會產生將舊帖子位置重定向到新的效果。我將它放在我的根.htaccess中。作爲參考,該網站的結構是這樣的: 老: mydomainname.com/oldblogdir/archives/old_blog_posts_look_like_this.htm 新: mydomainname.com/newblogdir/archives/new-blog-posts-look-like-this/ 我正在修改位於此處的.htaccess文件: mydomainname.com/.htaccess – TWLATL 2009-11-30 18:33:11