![Nginx 对除 index.html 之外的所有内容都返回“404 Not Found”](https://linux22.com/image/1666204/Nginx%20%E5%AF%B9%E9%99%A4%20index.html%20%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E5%86%85%E5%AE%B9%E9%83%BD%E8%BF%94%E5%9B%9E%E2%80%9C404%20Not%20Found%E2%80%9D.png)
在评论中回答,我没有设置正确的权限。
从 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 服务器显示这些文件可以解决这个问题。