Docker部署WordPress迁移后前端跳转旧域名问题求助
排查解决方向
1. 先确认跳转的触发来源
- 执行
curl -v http://local.url:8080查看返回的响应头:- 如果
Location字段值为旧域名,说明跳转是服务端返回的,继续往下排查服务端配置 - 如果curl访问返回200正常,只有浏览器跳转,优先清理浏览器HSTS缓存:Chrome浏览器可访问
chrome://net-internals/#hSTS删除oldurl.com的HSTS记录后重试
- 如果
2. 排查Docker及容器内Web服务配置
- 进入WordPress对应的Docker容器,检查内部的Nginx/Apache虚拟主机配置,是否存在写死旧域名的rewrite跳转规则
- 如果你在Docker外层使用了Nginx/Traefik等反向代理,确认代理层已正确传递
Host、X-Forwarded-Proto头到WordPress容器,示例Nginx反代配置参考:
proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host;
- 确认你修改的wp-config.php、数据库内容已正确同步到容器内,没有Docker卷缓存导致修改未生效的问题,可以进入容器执行
cat wp-config.php、手动查询wp_options表的siteurl和home字段值确认配置生效
3. 排查WordPress代码层逻辑
- 临时切换到WordPress官方默认主题(如Twenty Twenty-Four),如果切换后跳转消失,说明原主题的
functions.php或其他主题文件存在硬编码的旧域名跳转逻辑 - 排查站点根目录、wp-content目录下是否存在自定义的
.user.ini、auto_prepend_file加载的额外PHP文件,里面可能包含旧域名跳转代码 - 确认
wp-config.php中的WP_HOME、WP_SITEURL常量定义位置,必须放在/* That's all, stop editing! Happy publishing. */注释之前才会生效,没有被后续加载的配置覆盖
4. 多站点场景特殊排查
如果你的WordPress是多站点模式,常规的搜索替换会遗漏多站点专属表的配置,需要手动修改:
wp_blogs表的domain字段wp_site表的domain字段wp_sitemeta表的siteurl字段
内容的提问来源于stack exchange,提问作者Gonzalo
相关产品推荐
相关产品推荐

