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

Nginx配置问题:WordPress文章名模式固定链接无法加载返回404

Nginx配置问题:WordPress文章名模式固定链接无法加载返回404

嘿,我来帮你搞定这个WordPress固定链接404的问题!我看了你的Nginx配置,确实有几个小细节没处理好,导致文章名模式的链接没法正常解析。

问题根源

你的PHP请求处理块里,少了关键的参数传递——Nginx没把正确的文件路径信息告诉PHP-FPM,WordPress自然找不到对应的文章路由,直接返回404了。

修正后的完整配置

我已经帮你调整了配置,关键修改点都标出来了:

server {
    listen       80;
    server_name  xyz.com www.example.com;
    root   /db/docroot/www.example.com;
    index index.php;

    rewrite_log on;
    access_log  /db/logs/host.access.log  main;
    error_log   /db/logs/example.debug.log debug;

    location / {
        # 删掉了重复的root和index,server级别的配置会自动继承到子location
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        # 核心修改:把正确的脚本路径传递给PHP-FPM,这是解决404的关键
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        # 额外补充:明确传递路径信息,确保WordPress能精准解析文章路由
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

关键修改说明

  • 移除location /里重复的root和index:server块已经定义了全局的根目录和默认索引,子location会自动继承,重复写纯属多余
  • 添加fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;:默认的fastcgi_params文件通常没有这个参数,或者用了错误的变量,导致PHP-FPM找不到WordPress的入口文件,这才是404的元凶
  • 补充fastcgi_param PATH_INFO $fastcgi_path_info;:这能让WordPress准确识别固定链接里的文章路径部分,避免路由匹配错误

额外检查项(确保万无一失)

  • 确认PHP-FPM服务在正常运行:可以用systemctl status php-fpm命令查看状态,要是没运行就启动它:systemctl start php-fpm
  • 去WordPress后台重新保存一次固定链接设置:虽然Nginx不依赖.htaccess,但保存操作会让WordPress更新内部的路由规则,避免缓存问题
  • 检查目录权限:确保Nginx进程有读取/db/docroot/www.example.com目录下所有文件的权限,不然也会导致访问失败

最后,修改完配置后记得重启Nginx让新配置生效:systemctl restart nginx

备注:内容来源于stack exchange,提问作者amanda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 15:53:03