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

Nginx环境下WordPress子目录部署:wp-admin访问异常求助

NGINX子目录部署WordPress wp-admin下载问题解决

访问wp-admin下内容触发文件下载,核心原因是NGINX没有将PHP请求转发给PHP解析器执行,同时原有location规则的匹配逻辑也存在缺陷,导致wp-admin相关的PHP文件被直接当作静态资源返回。

修正后的完整NGINX配置

# 根目录直接重定向到portal子目录
location = / {
    return 301 /portal/;
    client_max_body_size 20M;
}

# 处理portal子目录下的所有请求(含wp-admin、wp-json、多语言路径)
location /portal/ {
    try_files $uri $uri/ /portal/index.php$is_args$args;
    
    # 嵌套规则处理子目录内的PHP文件
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 根据你的PHP版本调整套接字路径,也可使用127.0.0.1:9000(端口模式)
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        client_max_body_size 20M;
    }
}

# 处理根目录其他静态资源或默认请求(若有需要)
location / {
    try_files $uri $uri/ /index.php$is_args$args;
    client_max_body_size 20M;
}

关键调整说明

  • 原根目录的try_files改为直接301重定向,避免规则冲突,实现更可靠的根目录跳转
  • 用location /portal/替代原正则location,覆盖子目录下所有请求,包括wp-admin路径
  • 在portal的location内嵌套PHP处理规则,确保子目录中的PHP文件(如wp-admin.php)被正确转发给PHP-FPM执行,而非直接下载
  • 务必根据你的服务器PHP版本,调整fastcgi_pass的套接字路径(比如PHP7.4对应/run/php/php7.4-fpm.sock)

额外检查项

  • 确认PHP-FPM服务处于运行状态
  • 登录WordPress后台,检查"设置-常规"中的**站点地址(URL)和WordPress地址(URL)**均设置为https://你的域名/portal
  • 清理浏览器缓存后再测试wp-admin访问

内容的提问来源于stack exchange,提问作者Roddy P. Carbonell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 12:33:22