WordPress更改固定链接形式后用.htaccess进行301重新定向

这几天折腾今日杂记一直折腾不停,弄完这个弄那个,反正都是折腾,一次弄个够。这次索性把固定链接形式也改了,原来的固定链接形式没有什么不好,就是太长了,看起来不舒服,这个时候不改,说不定以后也会改。当初为什么会用"todaym.com/%year%/%monthnum%/%postname%.html"这样形式的固定链接,是因为最开始用的ftp版Blogger是这个样子,后来Blogger关闭了ftp发布,转到WordPress就继承了这样的固定链接形式,一直到现在。
现在用的固定链接形式是"todaym.com/archives/%postname%.html",至于为什么你看到的链接是数字而不是因为字母,那是因为我人为的给每个链接用的数字,第一篇文章从1开始一直到现在。为什么不用"todaym.com/archives/%post_id%.html"的形式?因为“post_id”不连续,要“post_id”连续修改起来很麻烦,还不如人为按顺序命名文章来得简单,而且效果更好。下面是修改固定链接形式后在.htaccess文件里添加的代码,注意放在# BEGIN WordPress代码之前。

RedirectMatch 301 ^/([0-9]+)/([0-9]+)/(.*).html$ /archives/$3.html
RedirectMatch 301 ^/([0-9]+)/([0-9]+)$ /archives/$1/$2

下面是一些符号所代表的意思。

(.+) 对应的是任意字符(包括汉字、英文字母等)
(\d+)对应的是任意数字(仅仅是阿拉伯数字)
([0-9]+)对应的是任意数字(仅仅是阿拉伯数字)
(.*)对应的是任意东西(文章名称中可能含有字母,可能含有数字,所以要用(.*)来对应)
$1 $2 $3 是前面出现过的变量的再次引用

上面代码第一条是把"todaym.com/%year%/%monthnum%/%postname%.html"这样形式的固定链接转移到"todaym.com/archives/%postname%.html",第二条是把原来的月存档形式转跳到现在的月存档形式。修改为"todaym.com/archives/%postname%.html"这样的固定连续形式后,分类和标签链接也会由原来的"todaym.com/tag/"变成"todaym.com/archives/tag",如果需要保持原来的分类和标签形式,只需在固定链接设置里自定义下“分类目录前缀”和“标签前缀”,分别定义为“category”和“tag”。

更新:用.htaccess进行301重新定向后,百度收录出现了两种形式的链接,还好问题不大。参见:WordPress更改固定链接301重定向后百度收录问题

我猜~这些文章你可能也感兴趣

Nie
Tags

相关文章

*


Top