最基础且必须的一步是直接修改数据库wp_options表中的siteurl和home字段,否则无法登录后台;需用phpMyAdmin定位该表,编辑这两项option_value为新域名(含协议),并注意表前缀和拼写准确。

直接在 wp_options 表里改 siteurl 和 home 字段
这是最基础的一步,不改完这俩字段,连后台都进不去——哪怕你已经在 wp-config.php 里加了 WP_HOME 和 WP_SITEURL,WordPress 仍会优先读取数据库里的值。
操作路径:进入 phpMyAdmin → 选中你的 WordPress 数据库 → 找到 wp_options 表(注意前缀可能不是 wp_,比如是 myblog_,请按实际表名确认)→ 点击「浏览」→ 找到 option_name 为 siteurl 和 home 的两行 → 点击「编辑」→ 把 option_value 改成新域名(含协议,如 https://newdomain.com)→ 执行保存。
常见错误现象:
- 改完后访问后台自动跳回旧域名 → 检查是否漏改其中一条,或
option_name拼写错误(比如写成homepage) - 改成了
http却想用https→ 后续图片/资源加载被浏览器拦截,务必保持协议一致 - 没清浏览器缓存或 DNS 缓存 → 本地仍看到跳转,建议用隐身窗口或
curl -I 旧域名验证真实重定向行为
用 SQL 语句批量替换所有旧域名引用
只改 wp_options 只能解决后台入口,文章正文、图片链接、自定义字段、评论内容里的旧域名仍会 404。必须执行多条 UPDATE 语句,覆盖全部可能存储 URL 的字段。
在 phpMyAdmin 的「SQL」标签页中,依次运行以下命令(把 old-domain.com 和 https://newdomain.com 替换成你的真实值,注意保留协议和斜杠):
UPDATE `wp_options` SET `option_value` = REPLACE(`option_value`, 'http://old-domain.com', 'https://newdomain.com') WHERE `option_name` = 'home' OR `option_name` = 'siteurl'; UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`, 'old-domain.com', 'https://newdomain.com'); UPDATE `wp_posts` SET `guid` = REPLACE(`guid`, 'old-domain.com', 'https://newdomain.com'); UPDATE `wp_postmeta` SET `meta_value` = REPLACE(`meta_value`, 'old-domain.com', 'https://newdomain.com'); UPDATE `wp_comments` SET `comment_content` = REPLACE(`comment_content`, 'old-domain.com', 'https://newdomain.com');
关键细节:
-
guid字段不能只替换成域名,必须带协议(https://),否则 RSS 订阅或某些插件会解析失败 - 如果主题或插件把 URL 存在
wp_options的其他option_name下(比如theme_mods_yourtheme),上面语句不会覆盖 → 建议额外加一行:UPDATE `wp_options` SET `option_value` = REPLACE(`option_value`, 'old-domain.com', 'https://newdomain.com') WHERE `option_value` LIKE '%old-domain.com%'; - 执行前务必点击「导出」备份整个数据库,误操作无法撤销
为什么不能只靠后台「设置 → 常规」改域名
后台修改看似最简单,但它只更新 wp_options 里的 siteurl 和 home,对文章内容、附件路径、自定义字段完全无影响。尤其当网站已运行半年以上,大量文章含绝对路径图片,改完后台立刻出现满屏 404 图片和错位 CSS。
适用场景仅限于:
- 全新站点,尚未发布任何文章
- 所有资源使用相对路径或 CDN 域名(且 CDN 域名本身未变)
- 临时测试环境切换,不关心历史内容显示
真实生产环境几乎从不单独依赖这一操作,它只是整个流程的第一步,不是终点。
执行后页面仍是 404 或样式错乱
大概率是反向代理或 Web 服务器配置没同步更新。例如在 1Panel、宝塔或 Nginx 中,站点根目录、PHP 运行路径、SSL 证书绑定仍指向旧域名或旧配置。
检查项:
- 确认 Web 服务器虚拟主机配置中,
server_name(Nginx)或「域名管理」(宝塔/1Panel)已添加新域名 - 如果启用了 HTTPS,SSL 证书必须重新申请或泛域名覆盖新域名,否则浏览器直接拒绝加载混合内容
- 某些缓存插件(如 WP Super Cache、Redis Object Cache)会缓存旧 URL 的 HTML 片段 → 进入后台清空所有缓存,或临时停用插件再试
- 检查
.htaccess(Apache)或 Nginx 配置里是否有硬编码的旧域名重定向规则
最容易被忽略的是:数据库替换时漏掉了主题或插件私有表,比如 wp_wpforms_tasks_meta 或 wp_woocommerce_api_keys —— 这些表里的 URL 不在标准五张表内,需根据实际插件文档单独处理。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











