要解决 WordPress 更换域名后后台跳转老域名的问题,需从数据库、配置文件和缓存等多方面入手。以下是具体步骤及操作说明:
-
进入数据库管理工具
通过 phpMyAdmin(或其他工具)登录网站数据库,找到wp_options
表。
-
更新站点 URL
编辑option_name
为siteurl
和home
的记录,将option_value
改为新域名(例如:https://newdomain.com
)。
示例 SQL 命令:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://old.com', 'https://new.com') WHERE option_name IN ('home', 'siteurl');
-
修复文章内容中的旧链接
若文章、图片或评论中存在旧域名,执行以下命令批量替换:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://old.com', 'https://new.com');
UPDATE wp_posts SET guid = REPLACE(guid, 'http://old.com', 'https://new.com');
UPDATE wp_comments SET comment_author_url = REPLACE(comment_author_url, 'http://old.com', 'https://new.com');
若无法访问后台,可直接在wp-config.php
文件底部添加以下代码:
define('WP_HOME', 'https://newdomain.com');
define('WP_SITEURL', 'https://newdomain.com');
保存后刷新页面,登录后台更新设置后删除这两行代码。
-
删除旧重定向规则
通过 FTP 或文件管理器打开网站根目录的.htaccess
文件,删除所有包含旧域名的重定向代码(如RewriteRule
)。
-
重置规则
若不确定内容,可将文件替换为 WordPress 默认规则:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
- 浏览器缓存:按
Ctrl+F5
强制刷新或清除浏览器历史记录。
- 插件缓存:禁用并重新启用缓存插件(如 WP Super Cache),或使用插件
WP-Optimize
清理缓存。
- 服务器缓存:联系主机提供商清除服务器级缓存。
- 禁用所有插件
通过 FTP 进入wp-content/plugins
目录,将插件文件夹重命名(如plugins_old
),然后访问后台。若问题解决,逐一启用插件以定位冲突项。
- 切换默认主题
登录后台,在外观 -> 主题
中切换至 WordPress 默认主题(如 Twenty Twenty-Three),排除主题代码问题。
- 检查 DNS 解析
确保新域名已正确解析到服务器 IP,可通过ping newdomain.com
或在线工具(如DNS Checker)验证。
- 更新 SSL 证书
若使用 HTTPS,需重新申请或更新 SSL 证书,并在后台设置中使用https://
开头的新域名。
- 批量替换工具
安装插件Better Search Replace
,在工具 -> 搜索替换
中输入新旧域名,选择需要更新的表(如wp_posts
、wp_comments
),自动替换数据库中的旧链接。
- 重定向管理
使用插件Redirection
设置 301 重定向,确保旧域名的所有请求跳转到新域名,避免流量丢失。
- 数据库修改界面:
截图展示 phpMyAdmin 中wp_options
表的编辑页面,突出显示siteurl
和home
字段的修改位置。
- .htaccess 文件路径:
展示通过 FTP 或文件管理器找到.htaccess
文件的目录结构,例如public_html/wordpress/.htaccess
。
- 插件操作界面:
截图Better Search Replace
插件的设置页面,显示搜索和替换字段的填写示例。