由于某人为因素,本站从 blog.punkid.cn 迁移到了 blog.punkid.org。原以为是个大工程,结果从域名购买,DNS 解析到 Wordpress 搬迁两个小时就搞定了。下面是一些搬迁过程中的经验技巧,希望对 cn 钉子户们有一定帮助。

域名购买

打死我也不在国内域名商那买域名了,除了某些因素不说,光是续费就够麻烦的,你得找原注册商那续费,而且想要进行域名转移的话,还要提交身份证信息等纸质凭证给原域名商进行核实。买域名还是老老实实的选家国外的注册机构吧,千万别贪国内那些域名商给你的小恩小惠。我是 godaddy 注册的,然后 google 了下 coupon codes,从 48 美元打折到了 36 美元左右,缴费方式支持 paypal 以及国内的支付宝,所以没有双币信用卡进行美元支付的话也没关系。

另外,godaddy 很多域名是第一年便宜,但是之后的年费比较贵,像.me 结尾的域名首年才 8 美元,但是之后每年要支付 20 美元,我索性选择了传统的.org 域名,每年老老实实交个 15 美元得了。

备份,修改 WP 数据库

WP 后台就有数据库的备份选项,一定要时常备份,以备不测。因为域名修改了,我要把数据库里的原域名地址全部更换为新域名地址,简单的办法是利用*unix 的 sed 工具替换,它非常的快,而且不用打开文本编辑器等待庞大的数据库文件全部读取完。

$ sed -i 's/blog\.punkid\.cn/blog\.punkid\.org/gi' databasename.sql

然后利用 phpmyadmin 导入进去就可以了。

搬动 Wordpress 文件夹

很简单,我是直接 cp -r blog.punkid.cn/* blog.punkid.cn/.* blog.punkid.org/ 搞定的,复制完之后最好确认下那些隐藏文件是否都复制过去了,例如 .htaccess

利用 301 重定向旧域名到新域名

更改域名最怕的是原在旧域名下被 google, yahoo, bing 索引的地址不能立刻转移到新域名下,除了重建 sitemap 通知 google 爬虫来重新抓取之外,利用到 301 永久重定向也是很重要的。我的目标自然是把旧域名下的链接全部自动重定向到新域名下面,例如我的这篇文件 Ultimate Guide to Manage Your iPod under Linux : Revised,每个月都有很大程度的浏览量来自于 google 的索引。如何保证访问者即使输入旧的地址 http://blog.punkid.cn/2008/01/06/ultimate-guide-to-manage-your-ipod-under-linux 也能自动重定向到 https://blog.punkid.org/posts/ultimate-guide-to-manage-your-ipod-under-linux 呢?

在原域名 (blog.punkid.cn) 的目录下添加.htaccess 文件,里面写入:

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(.*)$ https://blog.punkid.org/$1 [R=301,NC]
</IfModule>

搞定,剩下的让 google 来完成吧。

迁移 awstat 访问统计数据

我一直都在用 awstat 的访问统计,现在迁移到新的域名下,除了修改 awstat 的 conf 文件,还要把就域名下的访问统计数据移到新域名下。好在 awstat 的访问统计数据都是文本形式保存在 awstats/awdata 目录下,而且每月数据都是以诸如 awstats112007.blog.punkid.cn.txt 的文件名存在的,不用多解释了,把这么多文件全部替换为新域名 blog.punkid.org 就行了,不需要文件名批处理软件,*unix 下一个 rename 命令就搞定了。

$ rename -v 's/punkid\.cn/punkid\.org/' *.txt

End

暂时就这么多,目前来看搬迁后还没出现什么问题。另外,本站在 Going HTML5Going Mobile 后对 theme 进行了更激进式的 CSS3 升级,目前来看 Firefox 3.6, Google Chrome Dev 和 Opera 10.50 下的表现各有千秋吧。