Nginx 对除 index.html 之外的所有内容都返回“404 Not Found”

Nginx 对除 index.html 之外的所有内容都返回“404 Not Found”

在评论中回答,我没有设置正确的权限。

从 Stack Overflow 移出

我的网站,https://davisstanko.com除 之外的所有内容都会返回 404 错误index.html。这包括图片等文件,可在检查元素的网络选项卡中确认。

代码可从以下网址获取:https://github.com/DavisStanko/davisstanko.com在本地运行良好。这让我相信问题出在 nginx 上。

我的网站托管在运行 Debian 11 的 Vultr VPS 上。它开放了端口 80 和 443。

我的电脑正在运行 Manjaro,我正在使用 rsync 将文件发送到 VPS。

ls -l在服务器上运行时,所有文件(包括出现 404 错误的文件)都会返回-rw-r--r--

以下是我认为可能相关的 nginx 配置部分:

server {
        server_name davisstanko.com ;
        root /var/www/davisstanko/ ;
        index index.html index.htm index.nginx-debian.html ;
        location / {
                try_files $uri $uri/ =404 ;
                autoindex on ;
       }

访问日志:https://pastebin.com/fVNzNvKL

错误日志:https://pastebin.com/1ynNggMw

如果您需要我发布更多信息,请告诉我。

答案1

尽管在服务器上运行 ls -l 会为所有文件(包括那些给出 404 错误的文件)返回 -rw-rr--,但目录本身没有适当的权限。更改目录权限以允许 Web 服务器显示这些文件可以解决这个问题。

相关内容