2245 字
8 分钟阅读
站点替换域名教程

WordPress 更换域名完整步骤

更换 WordPress 域名需要同时修改 WordPress 数据库、Nginx 配置、SSL证书以及站点缓存。如果只修改其中一部分,可能会出现跳转错误、后台无法登录、资源加载失败等问题。

以下步骤适用于 Docker + Nginx + WordPress 环境。


一、修改 Nginx 域名配置

首先修改 Nginx 的站点配置。

进入:

nano /etc/nginx/sites-enabled/wordpress

找到:

server_name 旧域名;

修改为

server_name 新域名;

检查配置:

nginx -t

如果显示:

syntax is ok
test is successful

重新加载:

systemctl reload nginx

二、更新 WordPress 数据库域名

WordPress 的站点地址保存在数据库中。

进入 MariaDB:

docker exec -it wordpress_db mariadb -u root -p

选择数据库:

USE wordpress;

查看当前域名:

SELECT option_name, option_value 
FROM wp_options 
WHERE option_name='siteurl' 
OR option_name='home';

结果类似:

siteurl  https://旧域名
home     https://旧域名

修改:

UPDATE wp_options
SET option_value='https://新域名'
WHERE option_name='siteurl';

UPDATE wp_options
SET option_value='https://新域名'
WHERE option_name='home';

检查:

SELECT option_name, option_value 
FROM wp_options 
WHERE option_name='siteurl'
OR option_name='home';

确认已经变成新域名。


三、替换文章内容中的旧域名

WordPress 文章内容、图片地址、媒体链接可能保存旧域名。

搜索:

SELECT ID,post_title
FROM wp_posts
WHERE post_content LIKE '%旧域名%';

看到文章存在旧域名

执行:

UPDATE wp_posts
SET post_content =
REPLACE(
post_content,
'https://旧域名',
'https://新域名'
);

四、替换 GUID(RSS用)

检查:

SELECT ID,guid
FROM wp_posts
WHERE guid LIKE '%旧域名%';

替换:

UPDATE wp_posts
SET guid =
REPLACE(
guid,
'https://旧域名',
'https://新域名'
);

五、替换文章附件地址

检查:

SELECT meta_id,meta_key,meta_value
FROM wp_postmeta
WHERE meta_value LIKE '%旧域名%';

如果有:

执行:

UPDATE wp_postmeta
SET meta_value =
REPLACE(
meta_value,
'https://旧域名',
'https://新域名'
);

六、检查主题设置

检查 options:

SELECT option_name,option_value
FROM wp_options
WHERE option_value LIKE '%旧域名%';

这里可能包含:

主题设置
菜单链接
小工具
自定义 CSS

如果发现普通文本,可以替换。

例如:

UPDATE wp_options
SET option_value =
REPLACE(
option_value,
'https://旧域名',
'https://新域名'
);

⚠️ 如果涉及序列化数据,不建议直接替换。


七、清理缓存

进入 WordPress 容器

docker exec -it wordpress bash

删除缓存:

rm -rf /var/www/html/wp-content/cache/*

重启:

docker restart wordpress

八、验证旧地址是否残留

数据库检查:

SELECT COUNT(*)
FROM wp_posts
WHERE post_content LIKE '%新域名%';

返回:

0

检查 options:

SELECT COUNT(*)
FROM wp_options
WHERE option_value LIKE '%新域名%';

九、更新 SSL 证书

查看当前证书:

certbot certificates

申请新域名:

certbot --nginx -d 新域名

测试自动续期:

certbot renew --dry-run

完成检查

确认:

Nginx 已修改新域名
siteurl 修改
home 修改
数据库 旧域名替换
SSL 更新
缓存清理
图片加载正常
后台登录正常

这个流程是针对当前 Docker WordPress + MariaDB + Nginx 的迁移流程,不需要重新安装 WordPress,也不会影响主题、文章和上传图片。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注