本文约 2,147 字,预计阅读 6 分钟。文中命令与配置均经过实测,可直接参考执行。
引言
用一键安装、镜像部署或搬家工具把 WordPress 弄上线,本想着打开域名就能看到网站,结果浏览器地址栏一转,跳到了 http://服务器IP,或者跳到了上一个环境的旧域名。更奇怪的是,网站内容显示得好好的,就是地址不对,链接点进去也还是带着那个 IP 或旧地址。这背后的原因其实很明确:WordPress 并不知道你是用哪个域名访问它的,它只认数据库里存着的那两条”官方地址”记录——siteurl 和 home。一键安装工具和搬家脚本常常把这两条写成了服务器 IP 或旧域名,于是每次打开页面,WordPress 都会”把你送回到它记忆里的那个地址”。搞懂了这个机制,解决起来也就有方向了:让数据库里的地址和你的真实域名对齐。
故障原因分析
1. 数据库里的 siteurl / home 是 IP 或旧域名。 一键安装或镜像部署时自动写入的,是这两条记录在作祟,有些镜像甚至把地址写死成厂商的演示域名,务必逐个核对。
2. wp-config.php 里锁定了地址。 有人为了应急写了 WP_HOME / WP_SITEURL,事后忘了删,程序就一直用它。
3. 服务器层面存在硬编码重定向。 Nginx 或 Apache 配置里写了跳转到 IP 的规则,这类规则常来自早期部署脚本,装完就忘了清理。
4. 缓存或缓存插件保留了旧跳转。 页面缓存里存的还是指向旧地址的版本,光改数据库不一定会立刻见效。
5. 域名解析或 hosts 未生效。 域名还没正确指向这台服务器,重定向显得格外”顽固”。
分步解决方案
方法一:修正数据库里的站点地址
用 phpMyAdmin 打开数据库,改 wp_options 表中的两条记录(注意实际表前缀):
UPDATE wp_options SET option_value = 'https://www.example.com' WHERE option_name = 'home';
UPDATE wp_options SET option_value = 'https://www.example.com' WHERE option_name = 'siteurl';
改完清一次浏览器缓存再访问,跳转通常立即消失。
方法二:全局替换残留的旧地址
站内文章、菜单、小工具里往往还硬编码着旧地址,这时用全局替换工具更彻底。安装 “Better Search Replace” 这类插件,把旧地址整体替换为新域名,先在数据库层面勾选”演练(dry run)”确认结果,再执行正式替换。这条路比直接手写 SQL 安全得多,因为它能正确处理序列化数据,替换前务必先备份数据库,并优先在演练模式下确认影响范围。
方法三:用 WP-CLI 快速改地址
服务器装了 WP-CLI 的话,两条命令搞定:
wp option update home 'https://www.example.com'
wp option update siteurl 'https://www.example.com'
改完记得用 wp option get home 复核一下,确认取值已经更新。
方法四:检查 wp-config 与服务器重定向
先看 wp-config.php 有没有 define( 'WP_HOME', ... ) 或 define( 'WP_SITEURL', ... ),有就删掉或改成新域名。再检查 Nginx / Apache 配置里是否存在指向 IP 的 return 301 或 RewriteRule,有则一并修正,尤其要留意从旧主机拷贝过来的配置文件,往往残留着上一站的域名或 IP。
常见踩坑点
- 直接对数据库做 SQL 批量替换。 站点内容里含大量序列化数据,粗暴替换会破坏结构导致站点异常,务必用支持序列化的工具。
- 忘了 www 与 https。 新地址要和浏览器实际访问的完全一致,否则又会引发新的跳转。
- 缓存没清。 数据库改了、浏览器和 CDN 缓存却在旧版本,用无痕窗口先验证。
- 只改了两条记录没管站内链接。 首页不跳了,但内页仍指向旧地址,需配合方法二处理。
- 域名解析本身没生效。 域名还指向别处时,改多少配置都没用,先在本地
ping或 hosts 验证解析。 - 测试时用了带 www 的域名,实际访问却不带。 站点地址必须和访客最终使用的那一个完全一致,否则仍会来回跳转。
总结
访问域名却跳到服务器 IP 或旧地址,本质是 WordPress 依据数据库里的 siteurl 和 home 来”认路”,而这两个值还停留在旧环境。解决的关键就是把它们改成人真正用的域名,并顺手清理站内硬编码的旧链接、wp-config 里的强制定义以及服务器层面的重定向规则。这里特别提醒,站内替换一定要用支持序列化数据的工具,直接改 SQL 很容易把站点改坏。等地址全部对齐、缓存清干净之后,你的 WordPress 就会老老实实地待在正确域名下,不再乱跳了。以后再做搬家或换域名,建议先在本地把站点地址改好、把旧链接替换干净,再解析新域名,能极大减少中途跳转到旧地址的尴尬。把这个思路固化下来,以后每次搬家都能一次到位。
