WordPress改域名后打不开:siteurl与home改错的救援步骤

    发布时间:2026-09-19 05:00 更新时间:2026-09-19 05:00 阅读量:0

    给站点换域名、从测试环境搬到正式域名,或者手滑在后台把「WordPress 地址」和「站点地址」写错一个字母,WordPress 的典型反应就是:前台白屏、样式丢失、后台登录后又被弹回登录页,甚至连 wp-admin 都进不去。这类故障九成以上不是文件损坏,而是数据库里 siteurl 与 home 两个选项指向了访问不到的地址。下面把原理、救援步骤和避坑点一次讲清,照做基本能自己救回来。

    先搞懂 siteurl 与 home 到底管什么

    WordPress 把站点地址存在 wp_options 表的两条记录里:siteurl 是 WordPress 核心文件的安装地址,决定后台、wp-json、wp-cron 等核心路径怎么拼;home 是访客看到的首页地址,决定前台链接、静态资源 URL 的前缀。正常情况下两者相同,只有在「WordPress 装在子目录、首页放在根目录」这类特殊结构下才不一样,比如 siteurl 是 https://www.exb1.com/wp,home 是 https://www.exb1.com。

    很多新手以为改完后台那两栏就万事大吉,其实危险在于:一旦填成无法访问的域名,浏览器请求后台时会先按 siteurl 去拼登录地址,服务器上却找不到对应站点,于是形成「改错 → 打不开 → 想改回来 → 又打不开」的死循环。这也是为什么救援必须绕开 WordPress 后台,直接去数据库或配置文件里动手。

    动手前务必先备份,至少导出 wp_options 表或整库。宝塔面板可以在「数据库」里点备份,命令行则用 mysqldump;备份文件名带上时间,方便回滚。

    mysqldump -u 数据库用户 -p 数据库名 wp_options > wp_options_$(date +%F).sql

    救援路线一:进数据库把两条记录改回来

    能登录服务器和数据库,这是首选方案,改完立即生效、不依赖文件权限。用宝塔的 phpMyAdmin 或命令行都行,推荐命令行,避免大数据量页面超时。先确认当前值,再按新域名更新。注意表前缀不一定是 wp_,以自己站点实际前缀为准。

    # 查看当前值,确认是不是写错了
    mysql -u 数据库用户 -p 数据库名 -e "SELECT option_name, option_value FROM wp_options WHERE option_name IN ('siteurl','home');"
    
    

    按真实域名改回,两条都要一致(子目录结构请按实际路径填写)

    mysql -u 数据库用户 -p 数据库名 -e "UPDATE wp_options SET option_value='https://www.exb1.com' WHERE option_name='siteurl';" mysql -u 数据库用户 -p 数据库名 -e "UPDATE wp_options SET option_value='https://www.exb1.com' WHERE option_name='home';"

    改完先别急着登录,用无痕窗口访问一次首页,再访问 wp-login.php。如果页面能打开但样式错乱,说明文章正文里还残留旧域名的绝对地址,这属于内容层面的替换,和 siteurl 无关;要不要批量替换、怎么替换,建议先用 WP-CLI 的 search-replace 在测试库上验证,具体参数以官方文档为准。

    还有一种情况:域名换了、协议也从 http 升到 https,但数据库里仍是 http。此时除了改这两条,还要留意固定链接和部分插件把旧域名写死。可以顺手执行一次固定链接「保存更改」刷新 rewrite 规则,不需要改任何内容,点一下保存即可。

    救援路线二:wp-config.php 临时覆盖,绕过死循环

    如果连数据库都懒得进,或者改了数据库仍被重定向,可以在 wp-config.php 里临时硬编码。WordPress 会优先读取配置文件里的 WP_HOME 与 WP_SITEURL,覆盖数据库值,等于给自己留了一条后门。位置放在「好了,别再往下编辑了」注释之前、require_once ABSPATH . 'wp-settings.php' 之前。

    define('WP_HOME', 'https://www.exb1.com');
    define('WP_SITEURL', 'https://www.exb1.com');

    这两行加上后,刷新后台就该能进了。进去之后到「设置 → 常规」把两个地址填成正确值并保存,然后务必删掉这两行常量。留着不删的隐患是:以后在后台改地址不会生效,换域名时又会出现「明明改了却没变化」的迷惑现象,排查起来更费劲。这也是不少教程只讲加、不讲删的原因,容易留坑。

    如果文件里已经存在同名常量,重复定义会触发 PHP 提示,先删旧的再加。改配置文件前建议先复制一份 wp-config.php.bak,出错能秒回滚。权限上保持文件属主为 Web 运行用户(宝塔下通常是 www),不要图省事给 777,具体以自己环境的运行用户为准。

    几个容易踩的坑与收尾检查

    第一,改域名前先确认新域名解析已经生效,别在 DNS 还没指向本机时就改 siteurl,否则改完照样打不开,会误判成 WordPress 的问题。第二,CDN 或反向代理层若缓存了 301,浏览器可能仍跳旧地址,清一次 CDN 缓存再用无痕窗口验证。第三,多站点网络的域名改动逻辑和单站不同,涉及 wp_blogs、wp_site 等表,操作前请对照官方文档,不要直接照搬单站的 SQL。

    收尾时按这个顺序过一遍:首页能打开、后台能登录、样式和图片正常加载、固定链接可访问、wp-cron 与 REST API 无异常报错。都通过后,把备份文件保留一段时间,确认站点稳定再清理。域名变更本质上是一次小搬家,先备份、再改库、最后清掉临时覆盖,三步走完,基本不会再被「改错一个字母」卡住半天。

    继续阅读

    📑 📅
    Cloudflare 后真实访客 IP 丢失:CF-Connecting-IP 与 Nginx real_ip 配置 2026-09-19
    Nginx日志按天切割实操:logrotate配置与不生效排查 2026-09-19
    宝塔面板网站目录权限怎么给:www用户与755/644取舍 2026-09-19
    Nginx上传目录禁止执行PHP:location匹配与fastcgi拦截写法 2026-09-18
    宝塔面板数据库连不上排查:socket与3306端口、bind-address区别 2026-09-18
    宝塔面板SSL证书部署后HTTP/2没生效:协议开启、ALPN检查与Nginx版本差异 2026-09-19
    WordPress邮件发不出去:wp_mail走SMTP还是sendmail与SPF/DKIM检查 2026-09-20
    宝塔面板FTP连不上:Pure-FTPd被动端口与权限排查 2026-09-20
    robots.txt写错导致整站被屏蔽:误写排查与sitemap配合 2026-09-20
    WordPress后台上传图片报错:权限、临时目录与尺寸限制逐项定位 2026-09-20