nginx 中的位置不断返回 404

nginx 中的位置不断返回 404

我有一个非常简单的 nginx 设置,其中有两个位置块

server {
         listen 80 default_server;


          server_name localhost;

          location / {
                  root /usr/share/nginx/html;
                  index index.html index.htm;
                  try_files $uri $uri/ =404;
          }

          location /more {
                  root /usr/share/nginx/more;
                  index index.html index.htm;
                  try_files $uri $uri/ =404;
          }
}

它唯一应该做的事情是为第一个位置提供来自 /usr/share/nginx/html 的文件,为第二个位置提供来自 /usr/share/nginx/more 的文件。

第一个位置按预期工作,但第二个位置一直返回 404。

这个问题太简单了,文档或其他问题中都没有提到。我应该先检查什么?

记录显示:/usr/share/nginx/more 存在并且只包含一个文件,即 index.html

我发现 more 和 /usr/share/nginx 中的 html 文件夹之间的唯一“区别”是权限:

drwxr-xr-x 11 root root 4096 May 25 00:01 html
drwxr-xr-x 2 root root 4096 May 25 07:41 more

我知道我的设置重复了不必要的行,但我猜这不是现在的问题。

答案1

尝试一下,你会看到奇迹:)

location ~* ^/more/ {
    root /usr/share/nginx/more;
    index index.html index.htm;
    try_files $uri $uri/ =404;     
}

相关内容