blog域名迁移之迁移wordpress
原文地址:http://www.blogkid.net/archives/2552.html
更换域名更多时候是体力活儿,但是用法得当,可以省力不少。所以我打算写几篇文章,写写自己迁移域名(从blogkid.cn到blogkid.net)的全程。先写迁移wordpress。
迁移wordpress主要涉及到3步:
1、数据备份
如果服务器上装有phpmyadmin,可以直接导出一下。使用shell的朋友,可以用如下命令来备份数据:
mysqldump -u dbuser -pdbpass -h dbhost dbname | gzip > backup.sql.gz
把相应位置的dbuser, dbpass, dbhost和dbname替换为数据库用户名、密码、数据库服务器以及要备份的库名。最后得到的backup.sql.gz,就是一份完整备份。
插一句,我把备份的文件解压一看,居然有12M之巨。如果10%是有效内容的话,我这4年已经写了1.2M字节,相当于60万汉字了。
2、配置Web服务器
在这里需要牢记一点:使用301跳转,而不要用默认的302(refer)。
配置Web服务器的目的是,将访问原有域名的请求引导到新的域名。301跳转是永久重定向,而302跳转是暂时重定向。前者对搜索引擎更为友好。
以我从blogkid.cn迁移到blogkid.net为例,在nginx中做如下配置:
server {
listen 80;
server_name blogkid.cn blogkid.net www.blogkid.cn;
rewrite ^/(.*) http://www.blogkid.net/$1 permanent;
}server{
listen 80;
server_name www.blogkid.net;
……
}
第一段的配置是将blogkid.cn,blogkid.net以及www.blogkid.cn的请求都重定向到www.blogkid.net下面。而第二段是用www.blogkid.net替换原有的www.blogkid.cn,其他部分不用改变。注意到在使用rewrite时,加入了permanent关键字,可以使nginx发送301重定向。
如果使用apache,配置也类似,在rewrite时可加入参数R=301。
保存之后重启web服务器,使配置生效。
3、修改数据库
这也是对wordpress进行迁移的最后一步。需要注意,在完成第二步之后,wordpress会暂时无法打开,原因大家可以自己考虑一下。如果觉得不太好,把这一步提到前面也可以。或者可以先修改好配置文件,等第三步完成了再重启web服务器。
修改数据库主要修改3部分,语句可以在phpmyadmin或者mysql命令行中进行,整理自此处。
(1)修改站点地址、主页地址:
UPDATE wp_options SET option_value = replace(option_value, ‘http://www.old-domain.com’, ‘http://www.new-domain.com’) WHERE option_name = ‘home’ OR option_name = ’siteurl’;
(2)修改文章中内部链接以及附件地址:
UPDATE wp_posts SET post_content = replace(post_content, ‘http://www.old-domain.com’, ‘http://www.new-domain.com’);
(3)更新文章永久链接:
UPDATE wp_posts SET guid = replace(guid, ‘http://www.old-domain.com’,’http://www.new-domain.com’);
这三板斧一过,wordpress的迁移已经完成了。之后就从新域名打开网站,看看是否还有什么地方遗漏未能改掉。
BTW,如果原来域名有备案的话,可以在页面底部去掉。更换域名以后,就失效喽。
下一篇,将写写如何通知搜索引擎。


好文章,期待第二篇
做个友情链接吧。。
我也是最近才换了域名~
有个问题 搞不清啊
@双色球
啥问题?
@Cat.
好,给你加链接
总感觉迁移wordpress很麻烦的,现在连升级我都怕麻烦了。
@月饼
Wordpress升级还麻烦啊?按一下不就自动升级了,整一个桌面程序了…
2.7.1 -> 2.8 -> 2.8.1都这么干的,记得之前备份一下数据库以防万一就行了。
我都懒得备份了,反正也不相信他会出什么错儿。:)
我发现你上面这个评论里链接到“张磊”这个名字的还是原来的那个域名地址,需要更改一下数据库。