更改了wordpress的固定链接格式后做301重定向
最近总是感觉以前的URL格式太丑陋,太过杂乱。于是乎一时冲动就把URL格式给改了。
当然改了URL的首要事情就是要把以前就的url给重定向到新的URL上来,以减少搜索引擎方面的损失。
对 于wordpress来说你可以很容易的做的这一点。一个名叫Dean’s Permalinks Migration的插件可以让你很方便的帮你把原来的链接重定向过来。Dean’s Permalinks Migration安装使用很简单,只需激活,先设置旧的WordPress伪静态格式,然后再WordPress固定链接设置中填写新的地址格式即可。 类似插件还有Advanced Permalinks,好像功能更加强大点。
很不幸的是我不是一个wordpress插件的爱好者,我的博客力求使用尽量少的第三方插件。这里我来重点谈谈apache 的.htaccess文件设置301重定向。其实我对这.htaccess文件一点也不懂,根本不知道怎么写规则,于是就到apache官网上现学现卖 了。
如何重定向以及关于正则表达式的使用apache的文档讲的很详细,http://httpd.apache.org/docs/2.2/rewrite/rewrite_intro.html
http://httpd.apache.org/docs/2.2/urlmapping.html
我就简单的说说正则表达式,
^ –> 匹配字符串的开始
$ –> 匹配字符串的结束
\s –> 匹配任意的空白符
\w –> 匹配字母或数字或下划线或汉字
\b –> 是正则表达式规定的一个特殊代码代表着单词的开头或结尾,也就是单词的分界处。
\d –> 匹配一位数字
\W(大写) –> 匹配任意不是字母,数字,下划线,汉字的字符
\S (大写) –> 匹配任意不是空白符的字符
\D (大写) –> 匹配任意非数字的字符
\B(大写) –> 匹配不是单词开头或结束的位置
” . “ –> 匹配除了换行符以外的任意字符
” * “ –> 它代表的不是字符,也不是位置,而是数量——它指定 * 前边的内容可以连续重复使用任意次以使整个表达式得到匹配。” .* “连在一起就意味着任意数量的不包含换行的字符
” + “ –> 是和 ” * ” 类似的元字符,不同的是 * 匹配重复任意次(可能是0次),而 + 则匹配重复1次或更多次。
” ? “ –> 重复零次或一次
” – “ –> 不是元字符,只匹配它本身 连字符(减号)
需要说明的是我以前的url形式/%postname%-%post_id%.html,现在的使用的是/archives/%post_id%。那么我以前的网址是www.99xunle.com/xunlei-guanggao-660.html现在变为了www.99xunle.com/archives/662
那么.htaccess写法如下:
同样我的tag,author,category,date 目录也变了就做个目录定向。
Redirect /date /archives/date
Redirect /category /archives/category
Redirect /tag /archives/tag
更改了url,做了重定向Google已经有了反应,百度却貌似没反应,还是做好被百度冷淡20多天的心理准备吧。
