You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改站点URL后无法访问WordPress后台的问题求助

解决WordPress子目录迁移附加域名后后台登录权限问题

问题原因分析

  1. 域名与服务器变量不匹配:WordPress后台权限校验会对比$_SERVER['HTTP_HOST']和数据库中存储的siteurl/home,若cPanel附加域名配置导致服务器变量传递异常,会触发安全拦截。
  2. 数据库残留旧域名元数据:除siteurl和home外,数据库中文章内容、用户元数据、主题/插件配置里可能仍残留旧子目录域名,导致权限校验逻辑混乱。
  3. Cookie配置错误:旧域名的Cookie缓存或新域名的Cookie路径/域名设置不正确,导致登录状态无法被正确识别。
  4. 缓存干扰:WordPress的站点缓存、主题/插件缓存保留了旧域名的上下文,未及时更新。

解决方案

1. 硬编码域名与Cookie配置到wp-config.php

直接在wp-config.php文件末尾添加以下代码,强制使用新域名并修正Cookie规则:

define('WP_HOME','https://newsite.com.au');
define('WP_SITEURL','https://newsite.com.au');
define('COOKIE_DOMAIN', 'newsite.com.au');
define('ADMIN_COOKIE_PATH', '/');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');

保存文件后,无需修改数据库即可强制站点使用新域名。

2. 批量清理数据库旧域名残留

通过phpMyAdmin执行以下SQL语句(注意替换wp_为你的数据库实际前缀):

-- 更新站点核心URL
UPDATE wp_options SET option_value = REPLACE(option_value, 'https://main_site.com.au/newsite.com.au', 'https://newsite.com.au') WHERE option_name IN ('home', 'siteurl', 'admin_url', 'stylesheet_url', 'template_url');
-- 更新文章内容中的链接
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://main_site.com.au/newsite.com.au', 'https://newsite.com.au');
-- 更新文章元数据中的链接
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'https://main_site.com.au/newsite.com.au', 'https://newsite.com.au');
-- 更新用户元数据中的链接
UPDATE wp_usermeta SET meta_value = REPLACE(meta_value, 'https://main_site.com.au/newsite.com.au', 'https://newsite.com.au');

3. 验证cPanel附加域名配置

进入cPanel的「附加域名」页面,确认newsite.com.au的文档根目录已直接指向原子目录main_site.com.au/newsite.com.au,避免因创建新目录导致路径映射错误。

4. 重置WordPress缓存

在phpMyAdmin的wp_options表中,删除以下缓存相关条目:

  • _site_transient_theme_roots
  • _site_transient_update_plugins
  • _site_transient_update_themes
    或临时在wp-config.php中添加define('WP_CACHE', false);禁用缓存,登录后台后再移除该代码。

5. 重置管理员权限(极端情况)

若以上操作无效,执行SQL重置管理员权限(替换your_admin_username和your_admin_email为实际信息):

UPDATE wp_users SET user_login = 'your_admin_username', user_email = 'your_admin_email' WHERE ID = 1;
UPDATE wp_usermeta SET meta_value = 'a:1:{s:13:"administrator";b:1;}' WHERE user_id = 1 AND meta_key = 'wp_capabilities';
UPDATE wp_usermeta SET meta_value = '10' WHERE user_id = 1 AND meta_key = 'wp_user_level';

更优站点迁移步骤

为避免类似权限问题,推荐使用标准化迁移流程:

  • 提前在cPanel创建附加域名,设置文档根目录到新的空文件夹
  • 使用WordPress迁移插件(如All-in-One WP Migration)导出原站点的完整备份(含数据库和文件)
  • 在附加域名的文档根目录安装与原站点版本一致的全新WordPress
  • 导入备份文件,插件会自动批量替换所有域名和路径信息
  • 登录后台后更新固定链接设置,清除所有缓存,验证站点功能

内容的提问来源于stack exchange,提问作者PotatoGraphick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 11:17:35