关于修复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”菜单,我按照默认设置。

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

 

Linux 下获取已安装的软件列表 & 重新安装/恢复所有软件程序

 

要重新安装或恢复您需要有一个列表的所有已安装的软件安装软件。

如何: 创建的 Debian 下的所有已安装软件备份列表 / Ubuntu Linux

如果您使用 Debian 或 Ubuntu Linux,使用 dpkg 命令列出已安装的软件:
$ dpkg --get-selections
您可以存储到一个名为 /backup/installed-software.log 文件的已安装软件的列表,请输入:
$ dpkg --get-selections > /backup/installed-software.log
基于 RPM分布 (RHEL、 软呢帽,Redhat,CentOS,Suse Linux) 用户尝试 rpm 命令来获取所有已安装的软件的列表,请输入:
$ rpm -qa

$ rpm -qa > /backup/installed-software.log

如何从备份列表恢复已安装的软件?

Debian/Ubuntu Linux 下键入下列两个命令来重新安装所有的程序:
# dpkg --set-selections < /backup/installed-software.log
一旦导入列表,请使用 dselect 命令或其他工具要安装的软件包,请输入:
# dselect
请选择’i‘ 为安装选择的软件。

据我所知基于 RPM 的发行版不提供 dpkg 种的设施。但与小小的外壳脚本编写技术您可以轻松地安装的所有软件程序:
# LIST="$( cat /backup/installed-software.log )"
如果您正在使用百胜 comamnd,键入 for 循环来安装所有的软件以下内容:
# for s in $LIST; do yum -y install $s; done
更新试试下面的命令 (由于 gt):
# yum -y install $(cat /backup/installed-software.log)

RHEL 注意有关版本 4

如果您使用的 RHEL 4 或更旧,请输入:
# for s in $LIST; do up2date -i $s; done

或者,你可以使用下面的命令:
# up2date -i $(cat /backup/installed-software.log)

 

http://www.cyberciti.biz/tips/linux-get-list-installed-software-reinstallation-restore.html

 

在 Linux、 FreeBSD、 OpenBSD 中显示所有安装的软件或包

问: 我使用的 CentOS,如何在 Linux 中显示所有已安装的软件包?
答: 您需要使用 rpm 命令来在 Linux 中显示所有已安装的软件包

Red Hat/Fedora Core/CentOS Linux

Type the following command to get list of all installed software
# rpm -qa | less

Debian Linux

Type the following command to get list of all installed software:
# dpkg --get-selections

Ubuntu Linux

Type the following command to get list of all installed software:
# sudo dpkg --get-selections

FreeBSD

Type the following command to get list of all installed software:
# pkg_info | less
# pkg_info apache

Use pkg_version command to summarizes the versions of all installed packages:
# pkg_version | less
# pkg_version | grep 'lsof'

OpenBSD

OpenBSD also use pkg_info command to display list of all installed packages or software:
# pkg_info | less
# pkg_info apache

http://www.cyberciti.biz/faq/show-display-get-installed-packages-software-list-linux-freebsd-openbsd/