作为其他CMS子目录的WordPress访问wp-admin时出现重定向循环
解决WordPress子目录wp-admin重定向循环及403问题
1. 修正WordPress核心配置(wp-config.php)
打开WordPress根目录下的wp-config.php,添加/调整以下配置,确保与实际访问URL匹配:
define('WP_HOME', 'https://www.mycms.pl/my/wp'); define('WP_SITEURL', 'https://www.mycms.pl/my/wp'); define('FORCE_SSL_ADMIN', true); // 修复子目录Cookie路径问题 define('COOKIEPATH', '/my/wp/'); define('SITECOOKIEPATH', '/my/wp/'); define('ADMIN_COOKIE_PATH', '/my/wp/wp-admin/');
这些配置确保WordPress生成的后台链接、Cookie路径完全匹配子目录环境,从根源避免URL不匹配引发的重定向循环。
2. 调整Nginx静态文件处理逻辑
在location /my/wp下的静态文件块中,当前try_files指向主CMS的/index.php,会导致WordPress静态资源加载异常。修改为:
location ~* \.(css|gif|jpg|js|png|ico|otf|sng|xls|doc|exe|jpeg|tgx|ttf)$ { access_log off; expires max; try_files $uri $uri/ /my/wp/index.php?$query_string; }
3. 单独配置/wp-admin请求路由
在location /my/wp块内部添加专属的/wp-admin处理规则,确保请求完全由WordPress的PHP-FPM处理,避免主CMS配置干扰:
location /my/wp/wp-admin { try_files $uri $uri/ /my/wp/wp-admin/index.php?$args; location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_read_timeout 3600s; fastcgi_buffer_size 128k; fastcgi_buffers 4 128k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/wp-fpm.sock; fastcgi_index index.php; } }
4. 修复文件权限问题
403错误大概率是权限配置异常导致,执行以下命令修正(根据服务器实际运行用户调整www-data,比如部分服务器用nginx用户):
chown -R www-data:www-data /srv/wordpress/my/wp find /srv/wordpress/my/wp -type d -exec chmod 755 {} \; find /srv/wordpress/my/wp -type f -exec chmod 644 {} \;
5. 验证配置并重启服务
修改Nginx配置后,先验证语法合法性:
nginx -t
验证通过后重启Nginx:
systemctl restart nginx
最后清除浏览器缓存及相关Cookie,重新测试wp-admin访问。
内容的提问来源于stack exchange,提问作者macko
相关产品推荐
相关产品推荐

