子文件夹部署的WordPress站点无法访问/wp-admin问题求助
解决子目录WordPress后台访问权限报错的方案
1. 检查用户权限与数据库前缀匹配
由于两个站点共用数据库但使用独立前缀,需确保博客站点的用户在对应前缀的用户表中拥有管理员权限:
- 登录数据库管理工具(如phpMyAdmin),找到博客站点的
{blog_prefix}_users表,确认你的用户ID - 查看
{blog_prefix}_usermeta表,找到对应前缀的wp_capabilities字段,确保其值包含administrator权限,示例值:a:1:{s:13:"administrator";b:1;} - 同时检查
{blog_prefix}_options表中的admin_email是否与当前登录用户邮箱一致,避免权限验证冲突
2. 修正子目录.htaccess配置
主站与子目录的.htaccess需独立配置,避免重写规则冲突:
- 主站根目录.htaccess保留默认WordPress规则:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress - 子目录
/blog的.htaccess需设置正确的RewriteBase:# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blog/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] </IfModule> # END WordPress
3. 确认博客站点的WP配置参数
检查/blog/wp-config.php中的关键配置,确保与主站完全区分:
- 确认
$table_prefix设置为博客的独立前缀(例如$table_prefix = 'blog_';) - 添加以下参数强制后台使用正确的子目录路径:
define('WP_SITEURL', 'https://arria22dev.wpengine.com/blog'); define('WP_HOME', 'https://arria22dev.wpengine.com/blog'); define('ADMIN_COOKIE_PATH', '/blog'); define('COOKIE_DOMAIN', ''); define('COOKIEPATH', '/blog'); define('SITECOOKIEPATH', '/blog'); - 确保
AUTH_KEY、SECURE_AUTH_KEY等密钥与主站不同,避免Cookie认证冲突
4. 清除缓存与Cookie
- 清空浏览器缓存及该域名下的所有Cookie,尤其是认证类Cookie
- 清除WordPress缓存插件生成的缓存内容(若使用)
- 登录WP Engine主机后台手动清除全站服务器缓存
5. 排查文件权限问题
- 确保
/blog/wp-admin目录权限为755,内部文件权限为644 - 检查服务器用户组对该目录及文件的读写权限,避免因权限不足导致后台无法加载
内容的提问来源于stack exchange,提问作者cachem0net
相关产品推荐
相关产品推荐

