我正在将自定义编码博客迁移到Wordpress,并且必须设置一个可以处理所有博客帖子的重定向。
我需要重定向:
/oldblogdirectory/Old_Blog_Posts_Looked_Like_This.htm
为:
/ newblogdirectory /新博客,帖子,看样这/
有关正则表达式的重定向的想法吗?
答案 0 :(得分: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。
答案 1 :(得分:2)
Gumbo的方法肯定是这样做的。我制作了两个测试目录:
oldblogdir/archives/blog_posts_look_like_this.htm
newblogdir/archives/blog-posts-look-like-this
以下RewriteRules重定向成功。他们只是稍微改变了Gumbo的提议:
RewriteEngine on
RewriteBase /
RewriteRule ^(oldblogdir/archives/[^_]*)_(.*) $1-$2 [N]
RewriteRule ^oldblogdir/archives/(.*?)\.htm$ newblogdir/archives/$1 [R,NC,L]
请注意,[N]
会导致重新评估.htaccess文件,直到RegEx不再匹配为止。因此,您应该将它放在文件的最顶层。