«

Nginx报404 Not Found原因,文件路径检查

时间:2026-10-7 07:36     作者:emer     分类: 无


前言

访问网站出现 404 Not Found,意思是 Nginx 找不到文件。大部分情况是路径配置不对。本文讲一下 404 的常见原因和排查方法。

404 的常见原因

原因1:root 路径不对

Nginx 配置里的 root 指向的目录不对,文件不在那个目录里。

检查:

server {
    root  /var/www/html;  # 确认这个路径
}

去服务器上看一下:

ls /var/www/html/

看 index.html 在不在。

原因2:index 首页没配置

访问根目录,Nginx 不知道默认打开哪个文件。

解决: 配置 index:

server {
    root  /var/www/html;
    index index.php index.html index.htm;
}

原因3:伪静态没配好

ThinkPHP、WordPress 这种程序,需要伪静态规则。没配的话,访问文章页就 404。

解决: 加上伪静态规则:

location / {
    try_files $uri $uri/ /index.php?$args;
}

原因4:文件权限不对

文件存在,但 Nginx 读不了。

检查:

ls -la /var/www/html/

确保文件权限是 644,目录是 755,属主是 www。

排查步骤

第一步:确认文件真的存在

ls -la /var/www/html/index.html

第二步:确认 Nginx 配置的 root 路径

grep root /etc/nginx/conf.d/你的站点.conf

第三步:看 Nginx 错误日志

tail -f /var/log/nginx/error.log

访问一下 404 的页面,看日志里写的什么。

常见坑

坑1:root 和 alias 搞混了

很多人分不清 root 和 alias。

区别:

举个例子:

请求 /a/test.html

# root 方式
root /var/www;
# 实际找 /var/www/a/test.html

# alias 方式
location /a/ {
    alias /var/www/;
}
# 实际找 /var/www/test.html

坑2:首页能访问,内页 404

首页打开正常,点文章就 404。

原因: 伪静态没配。

解决: 给程序配上伪静态规则。

坑3:PHP 文件 404

访问 PHP 文件,直接下载或者 404。

原因: PHP 解析没配置。

解决: 确保有 PHP 的 location 配置:

location ~ \.php$ {
    fastcgi_pass   unix:/run/php-fpm/www.sock;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

坑4:改了文件名但浏览器还缓存

本地改了文件名,访问还是 404。

原因: 浏览器缓存了旧的 404 响应。

解决: 清浏览器缓存,或者用无痕模式测试。

总结

404 排查三步走:

  1. 文件在不在?
  2. root 路径对不对?
  3. 伪静态配没配?

记住: 排查 404 先看错误日志,比瞎猜快多了。

遇到问题加QQ23979811 协助处理

标签: Nginx 排查 404 Not Found 文件路径