迁移子域名网站至主域名后WordPress登录异常求助
WordPress子站迁移主站登录问题解决指南
核心问题分析
你遇到的登录错误、权限不足、跳转旧子域名,本质都是站点URL未完全同步和用户元数据残留旧配置导致的,以下是逐一步骤的解决方法:
1. 修正用户元数据中的旧域名
替换用户表后登录跳回子域名,是因为wp_usermeta表中存储了旧子域名的后台路径,直接执行SQL批量更新:
-- 替换你的数据库前缀、旧子域名、主域名 UPDATE wp_usermeta SET meta_value = REPLACE(meta_value, 'https://sub.yourdomain.com', 'https://yourdomain.com') WHERE meta_key LIKE 'wp_%';
如果不确定前缀,看数据库里的表名(比如可能是wp_2_这类多站点前缀)。
2. 强制锁定主站URL
编辑主站根目录的wp-config.php,添加以下代码强制站点使用新域名,避免插件/迁移工具的配置遗漏:
define('WP_HOME','https://yourdomain.com'); define('WP_SITEURL','https://yourdomain.com');
3. 修复新用户权限问题
手动创建新用户提示无权限,是因为用户角色元数据未正确写入,执行SQL给指定用户添加管理员权限(替换1为你的新用户ID,wp_为前缀):
INSERT INTO wp_usermeta (user_id, meta_key, meta_value) VALUES (1, 'wp_capabilities', 'a:1:{s:13:"administrator";b:1;}'), (1, 'wp_user_level', '10');
4. 清除旧会话缓存
登录前务必清除浏览器中主域名的所有Cookie(尤其是wordpress_logged_in_开头的),同时刷新DNS缓存,避免旧会话信息干扰验证。
为什么之前的方法失效?
- 手动/插件迁移时,多数工具只会同步文章、主题等内容,但用户元数据中的站点路径和wp-config的URL配置容易被忽略,导致WordPress登录验证时域名不匹配,触发"密码错误"提示。
- 直接替换用户表后,旧子域名的后台路径仍存于
wp_usermeta,登录后会自动跳转旧地址。
内容的提问来源于stack exchange,提问作者Poll Soumboud
相关产品推荐
相关产品推荐

