Nginx配置多WordPress站点遇403错误,移除$uri/后后台重定向异常
问题原因与解决办法
核心原因
当try_files $uri $uri/ /index.php?$args中的$uri/生效时,Nginx会尝试访问对应的目录,但如果该目录未配置允许识别目录索引文件,即便wp-admin目录下有index.php,Nginx也不会自动将其作为目录默认入口,直接返回403权限错误。
具体修复方案
1. 明确指定目录默认索引文件
在server块内添加index指令,让Nginx明确知道目录下的默认索引是index.php:
server { listen 80; server_name mysite.com www.mysite.com; root /var/www/my-site; # 新增该行,指定目录默认索引 index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } # 其余配置保持不变... }
2. 二次确认目录权限细节
虽然你提到wp-admin权限与其他目录一致,仍需确保:
- 站点根目录
/var/www/my-site及所有子目录的所有者为Nginx运行用户(通常是www-data),权限设置为755(所有者读/写/执行,组和其他读/执行) - PHP文件权限设为
644,避免过高权限引发安全风险
3. 验证wp-admin跳转逻辑
添加index指令后,$uri/会正确指向wp-admin目录下的index.php,既不会触发403,也能保证wp-admin的正常跳转,不会出现重定向过多问题。
排查辅助方案
如果问题仍存在,可临时开启Nginx debug日志定位具体环节:
# 修改nginx.conf中的error_log级别为debug error_log /var/log/nginx/error.log debug; # 重启Nginx生效 systemctl restart nginx
访问wp-admin后查看日志,即可明确是哪一步触发了403错误。
内容的提问来源于stack exchange,提问作者theburntcrumpet
相关产品推荐
相关产品推荐

