因?yàn)楦鞣N原因,我們有時(shí)候需要更換 WordPress 的域名,而 WordPress 的域名是直接寫入到數(shù)據(jù)庫中的,直接更換服務(wù)器中 WordPress 站點(diǎn)綁定的域名顯然是不行的,除了這個(gè)工作,我們還需要替換 WordPress 數(shù)據(jù)庫中的舊域名為新域名,才算徹底完成 WordPress 的域名更換工作。本文中,我將為大家介紹幾種更換 WordPress 域名的方式。需要事先提醒大家的是,修改 WordPress 數(shù)據(jù)庫之前,一定要做好備份,以防萬一。
如果你需要的不是更換域名,而是在一個(gè) WordPress 站點(diǎn)中綁定多個(gè)域名,請(qǐng)參考本站的另外一篇文章:WordPress 綁定多個(gè)域名的方法。
使用 wp-cli 工具搜索替換域名的方式更換 WordPress 域名
wp-cli 是一個(gè)命令行工具,可以讓我們通過命令行安裝、更新 WordPress,對(duì) WordPress 執(zhí)行一些批量操作,使用起來相當(dāng)方便。
安裝 wp-cli 工具
如果已經(jīng)安裝了 wp-cli 工具,直接進(jìn)行下一步。
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
搜索替換 WordPress 數(shù)據(jù)庫中的域名
wp-cli 工具為我們提供了一個(gè)搜索替換數(shù)據(jù)庫中字符的命令,直接在 WordPress 的根目錄執(zhí)行以下命令即可完成更換 WordPress 域名的操作,該命令支持一些選項(xiàng)方便我們自定義操作,具體查看 wp search-replace 命令的官方說明。
wp search-replace old.com new.com
使用 SQL 語句直接在數(shù)據(jù)庫中替換域名
在 phpMyAdmin 中直接運(yùn)行下面的命令替換舊域名為新域名即可。復(fù)制代碼后,替換代碼中 old.com, new.com, 如果您的 WordPress 站點(diǎn)使用了自定義數(shù)據(jù)表前綴,同時(shí)修改下面命令中的 ‘wp_’ 數(shù)據(jù)表前綴。
UPDATE wp_options SET option_value = replace(option_value, 'http://old.com', 'http://new.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://old.com','http://www.newurl');
UPDATE wp_posts SET post_content = replace(post_content, 'http://old.com', 'http://new.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://old.com','http://new.com');
UPDATE wp_usermeta SET meta_value = replace(meta_value, 'http://old.com', 'http://new.com');
UPDATE wp_comments SET comment_content = REPLACE (comment_content, 'http://old.com', 'http://new.com');
UPDATE wp_comments SET comment_author_url = REPLACE (comment_author_url, 'http://old.com','http://new.com');
大多數(shù)情況下,寫入 WordPress 中的域名都存在于上面幾個(gè)數(shù)據(jù)表中,但是也不排除主題或插件添加的自定義數(shù)據(jù)表也包含舊域名,如果執(zhí)行了上面的命令后,還有一些舊域名沒有被替換掉,可以參考下面直接編輯 .sql 文件的方法進(jìn)行替換。
使用代碼編輯器編輯 .sql 導(dǎo)出文件直接替換
導(dǎo)出 .sql 文件,然后使用你喜歡的代碼編輯器打開導(dǎo)出的 .sql 文件,搜索替換舊域名為新域名。
然后直接刪除站點(diǎn)數(shù)據(jù)庫中的所有數(shù)據(jù)表,再導(dǎo)入到數(shù)據(jù)庫即可。
設(shè)置 301 跳轉(zhuǎn)把舊域名的流量導(dǎo)入新域名
如果您的站點(diǎn)已經(jīng)被搜索引擎收錄了,可以在 Nginx 中做一個(gè) 301 跳轉(zhuǎn)設(shè)置,把舊域名的流量導(dǎo)入到新域名。
server {
listen 80;
server_name old.com new.com;
return 301 http://new.com$request_uri;
}
最后,再次提醒,修改 WordPress 數(shù)據(jù)庫之前一定要做好備份,萬一修改過程中出了問題,我們還可以很簡單的把數(shù)據(jù)恢復(fù)過來,不至于造成太大的損失。


