要解决 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插件的设置页面,显示搜索和替换字段的填写示例。
WordPress 更换域名后访问后台跳转老域名解决办法