当服务器迁移,需要更换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 (替换)
用 303 , Replaced redirected (303) 重定向 wp 到 blog,
Local URL Path |
Type |
Redirect URL |
|
/wp |
303 |
http://bohu.net/blog |
303 – Replaced 顾名思义,就是可以替换URL中的地址,而且正确的响应所传递的参数。? 号之后的参数不会丢失。
这样设置之后 访问 bohu.net/wp 就可以 转到 bohu.net/blog 了。
手动修复ID
但是元文章ID是197, 现在变为了2553,你如果用插件修复固定连接的话那么,可以忽略这一部分。
我尝试手动修复了ID。先下载插件 ”ShowID“
启用之后就可以在文章列表看到每篇文章的 ID 了。我没找到自动更改ID的插件,进数据库自己修改的。
这样 http://bohu.net/blog/197 就可以恢复访问到了。
修复固定链接改变/迁移
但是之前的固定连接 ”197,orz-and-wtf“ 为两个参数组合的,所以原URL还不能直接访问。
需要使用插件转发到新固定连接,我最先用的是 ”Advanced Permalinks“
可以完成转发效果,不过发现设置有点不太简单化,而且我的翻页有问题。
下面是附带解决固定连接修改后翻页的问题。
翻页有问题 有时候翻到第二页或其他页不能正常工作,地址如下:
访问上面的任何一个链接,出现提示说: “Sorry, no posts match that criteria.”
这是.htaccess造成的,删掉,重新生成就好了。
看到”Advanced Permalinks“已经是2年未更新了,最后还是更换了插件为 ”Permalink Finder“。
启用”Permalink Finder“Permalink-Finder Options”菜单,我按照默认设置。
这样就自动化完成修复固定链接的改变/迁移了。设置基本上不需要多少的改变。