如题,如何快速更换使用 Wordpress 搭建的网站、博客的域名,除了在域名服务商那更换域名的解析和 web服务器端的配置外,还应该从数据库端做些什么?熟悉 Wordpress 的用户都知道在 Wordpress 后台,设置 --> 常规 里有一项 “站点地址(URL)”,可以实现网站地址的配置。难道改了这个就可以完全实现域名的更换服务吗?
经过实践得知,这个后台的配置只能修改部分数据库中网站域名的记录,就是 wp_options
表里option_name
为 home
和 siteurl
对应option_value的值。而数据库中其它表如 wp_posts
、wp_postmeta
、wp_comments
均有本站域名的存储。
上周将我的站点域名从 wiki.i-fanr.com 更换成 i-fanr.com,从数据库中批量查询域名对应的字符,总结了以下批量修改的SQL语句:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://wiki.i-fanr.com', 'http://i-fanr.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://wiki.i-fanr.com', 'http://i-fanr.com'); UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://wiki.i-fanr.com','http://i-fanr.com'); UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://wiki.i-fanr.com', 'http://i-fanr.com'); UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://wiki.i-fanr.com','http://i-fanr.com'); UPDATE wp_posts SET guid = REPLACE (guid, 'http://wiki.i-fanr.com', 'http://i-fanr.com') WHERE post_type = 'attachment';
如果你也需要更换你的域名,只需要将以上的域名替换成你更换前后的域名,另外,如果你的表前缀不是默认的 wp_
,还需要做相应的修改。
Wordpress 插件市场中同样可以收到类似的域名替换插件,实现原理是一样的,就是通过插件在激活的时候执行了以上的 SQL 语句。