关于修复WordPress固定链接的改变/迁移 (Change Permalink Migration)

当服务器迁移,需要更换WordPress地址路径时,或是导入了新数据时,会遇到固定链接 改变,文章ID也不正确的情况。

我们需要修正这个问题,以我一些经验为例:

 

例如,我在迁移服务器后,且又多次导入了几个时期分别备份的数据后:

(原URL):http://bohu.net/wp/2006/07/197,orz-and-wtf/  变成了 (新URL)http://bohu.net/blog/197

原文件夹是 wp 新文件夹为 blog

 

设置转发(Redirect)

那么首先设置web服务器的重定向类型(Redirect Type),一般web服务器都支持一下3种Redirect:
301 – Permanent(永久)
302 – Temporary(临时)
303 – Replaced (替换)
详细参数说明,查看 维基百科 HTTP状态码 :3xx重定向
用   303 ,  Replaced  redirected (303)  重定向 wp 到 blog,
Local URL Path Type Redirect URL
/wp 303 http://bohu.net/blog

 

303 – Replaced 顾名思义,就是可以替换URL中的地址,而且正确的响应所传递的参数。? 号之后的参数不会丢失。

如: http://bohu.net/blog/post.php?post=1234&action=edit  303 替换为 http://bohu.net/wp/post.php?post=1234&action=edit

这样设置之后 访问 bohu.net/wp 就可以 转到 bohu.net/blog 了。

 

手动修复ID

但是元文章ID是197, 现在变为了2553,你如果用插件修复固定连接的话那么,可以忽略这一部分。

我尝试手动修复了ID。先下载插件 ”ShowID

下载插件:ShowID for Post/Page/Category/Tag/Comment – http://ounziw.com/2010/02/05/showid/

启用之后就可以在文章列表看到每篇文章的 ID 了。我没找到自动更改ID的插件,进数据库自己修改的。

这样 http://bohu.net/blog/197 就可以恢复访问到了。

 

修复固定链接改变/迁移

但是之前的固定连接 ”197,orz-and-wtf“ 为两个参数组合的,所以原URL还不能直接访问。

需要使用插件转发到新固定连接,我最先用的是 ”Advanced Permalinks“

下载插件:Advanced Permalinks – http://urbangiraffe.com/plugins/advanced-permalinks/

可以完成转发效果,不过发现设置有点不太简单化,而且我的翻页有问题。

下面是附带解决固定连接修改后翻页的问题。

翻页有问题     有时候翻到第二页或其他页不能正常工作,地址如下:
 http://www.example.com/page/2/  http://www.example.name/category/categoryname/page/2/  http://www.example/year/month/day/page/2/  http://www.example/year/month/page/2/
    访问上面的任何一个链接,出现提示说: “Sorry, no posts match that criteria.”
    这是.htaccess造成的,删掉,重新生成就好了。

看到”Advanced Permalinks“已经是2年未更新了,最后还是更换了插件为 ”Permalink Finder“。

下载插件:Permalink Finder –  http://www.blogseye.com/

启用”Permalink Finder“Permalink-Finder Options”菜单,我按照默认设置。

这样就自动化完成修复固定链接的改变/迁移了。设置基本上不需要多少的改变。