如何更改WordPress多站点域名?
- CMS教程
- 2025-06-02
- 4536
wp-config.php
中的
DOMAIN_CURRENT_SITE
,并借助专业数据库搜索替换工具(如Better Search Replace)批量更新所有站点链接,确保替换序列化数据安全,操作顺序不可颠倒。
WordPress多站点域名修改指南
重要提示:修改多站点域名是高风险操作!操作前务必完整备份数据库和文件(推荐使用UpdraftPlus或All-in-One WP Migration),并确保具备服务器和数据库管理基础,操作失误可能导致网站瘫痪!
准备工作
- 备份数据
- 数据库备份:通过phpMyAdmin导出全库SQL文件。
- 文件备份:FTP下载整个WordPress目录(包括
wp-config.php
和.htaccess
)。
- 获取新域名信息
- 确认新域名已解析到当前服务器IP。
- 准备SSL证书(可通过Let’s Encrypt免费申请)。
- 停用缓存插件
在WordPress后台停用所有缓存插件(如W3 Total Cache、WP Super Cache)。
核心操作步骤
步骤1:修改wp-config.php
文件
通过FTP或主机面板打开wp-config.php
,在define('WP_DEBUG', false);
上方添加:
define('WP_ALLOW_MULTISITE', true); // 确保已开启多站点 define('DOMAIN_CURRENT_SITE', 'newdomain.com'); // 替换为新域名
注意:newdomain.com
不带http://
或www
。
步骤2:更新多站点网络配置
打开 网站根目录 下的.htaccess
文件,将原有规则替换为:
RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] # 将旧域名重定向到新域名(防内容重复) RewriteCond %{HTTP_HOST} ^olddomain.com$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.olddomain.com$ [NC] RewriteRule ^(.*)$ https://newdomain.com/$1 [R=301,L] # 多站点规则(WordPress默认生成) RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L] RewriteRule . index.php [L]
关键提示:
- 将
olddomain.com
和newdomain.com
替换为实际域名。 - 301重定向可避免SEO权重流失。
步骤3:替换数据库中的旧域名(最高风险)
方法1:使用插件(推荐小白)
安装 Better Search Replace 插件,对所有表执行替换:
- :
http://olddomain.com
- 替换为:
https://newdomain.com
- 勾选 “所有表” 并勾选 “区分协议”(若启用HTTPS)。
方法2:手动SQL命令(需精准操作)
在phpMyAdmin中执行:
UPDATE wp_options SET option_value = REPLACE(option_value, 'olddomain.com', 'newdomain.com'); UPDATE wp_posts SET post_content = REPLACE(post_content, 'olddomain.com', 'newdomain.com'); UPDATE wp_blogs SET domain = 'newdomain.com' WHERE domain = 'olddomain.com'; -- 注意:表前缀(如wp_)需根据实际修改
重点排查表:wp_site
、wp_sitemeta
、wp_blogs
、wp_options
及子站点的独立表(如wp_2_options
)。
后续关键配置
- 更新子站点域名
- 进入 网络管理后台 → 站点 → 编辑子站点,手动修改子站点的域名(需逐个操作)。
- 重置Permalinks
- 在 设置 → 固定链接 中点击“保存更改”,刷新重写规则。
- SSL证书配置
为主域名和所有子站点安装SSL证书(可使用Certbot或主机商一键工具)。
- 清除缓存
清除服务器缓存(如Redis/Memcached)、CDN缓存及浏览器缓存。
验证与测试
- 主站点检查
- 访问
https://newdomain.com
和https://www.newdomain.com
(确保无混合内容错误)。
- 访问
- 子站点抽查
随机打开3-5个子站点,测试文章内链、图片路径是否正常。
- SEO关键项
- 使用Screaming Frog扫描死链,检查Google Search Console的覆盖率报告。
- 更新sitemap.xml并重新提交。
常见问题排查
-
页面样式错乱:
在wp-config.php
中开启调试模式:define('WP_DEBUG', true); define('SCRIPT_DEBUG', true);
检查控制台错误,通常为硬编码旧域名的CSS/JS文件导致。
-
数据库连接错误:
恢复备份的wp-config.php
,检查数据库凭证。 -
子站点无法访问:
确认.htaccess
规则未冲突,子站点的wp_options
表中siteurl/home
值已更新。
高级场景处理
-
更换主域名但保留子站点原域名:
需手动编辑每个子站点的wp_options
表(或子站数据库),单独设置siteurl
和home
值。 -
批量修改子站点域名:
使用插件 WP CLI 命令(需服务器权限):wp site list --field=url | xargs -I % wp search-replace "olddomain.com" "newdomain.com" --url=% --all-tables
操作守则:
- ️ 禁止在未备份时修改数据库!
- ️ 旧域名保持解析至少48小时,确保重定向生效。
- ️ 修改后立即在百度/Google站长平台更新域名属性。
引用说明:本文参考WordPress官方文档、Apache重定向规则标准及SEO最佳实践(Moz, Search Engine Journal),技术细节遵循WordPress Core Handbook中的多站点管理指南。
通过以上步骤,您可安全完成WordPress多站点的域名迁移,若遇复杂情况,建议联系专业开发者或主机商支持团队。