PJblog转WordPress文章地址重定向

动态pjblog的文章是以/article.asp?id=num结尾的,转成Wordpress之后怎么样让这个地址跳转到新的可以访问到的页面呢?如/archives/num.html

因为我这个主机是apache服务器拥有mod_rewrite组件支持,所以我们可以使用mod_rewrite进行重定向。

方法:在Wordpress根目录的.htaccess文件中加入下面语句

RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^(.*)$ archives/%1.html? [R=301,L]

这样就可以实现重定向了。测试之后发觉,如果在wp后台改过固定链接之后.htaccess将会被重写,这样你就需要重新修改。

下面测试一下访问这个页面的效果http://www.baizoo.cn/article.asp?id=18

mod_rewrite内容相当丰富,这么几句话就花了我很长时间去参透,其中不仅涉及Rewrite指令,还涉及正则表达式的知识。

下面有几条常见正则表达式的格式,转来参考。

文本
. 任意一个单字符
[chars] 字符类: “chars”中的任意一个字符
[^chars] 字符类: 不在”chars”中的字符
text1|text2 选择: text1 或 text2

量词
? 前面的字符出现 0 或 1 次
* 前面的字符出现 0 或 N 次(N > 0)
+ 前面的字符出现 1 或 N 次(N > 1)

分组
(text) text 组
(常用于设置一个选择的边界,或用于生成后引用:
在RewriteRule中可以用 $N 引用第N个分组)


^ 锚定到行首
$ 锚定到行尾

转义
\c 对给定的字符c进行转义
(比如对”.[]()”进行转义,等等)

3 Comments

Leave a Comment