nginx try_files 索引冲突

nginx try_files 索引冲突

我正在尝试使用 nginx 实现以下设置:

  • 使用 index.html 表示 '/'
  • 清理 .html 网址
  • 如果没有找到相应的文件,则默认为 404

我的服务器块如下所示:

server {
    listen      80;
    server_name 127.0.0.1;

    index index.htm;

    location / {
        root "static";
        try_files $uri.html =404;
    }
}

现在,访问 '/' 会转到 404。我尝试过一些常见的解决方案,例如:

try_files $uri.html $uri/ =404;

但是这些允许'/page'和'/page.html'作为有效的url,并且我想避免重复。

有什么建议么?

答案1

您的root指令有两个问题:

  1. 它使用相对路径。当使用相对路径时,它是相对于编译到 nginx 中的默认目录。你知道那是哪一个吗?最好指定绝对路径。
  2. 它的位置不对。该root指令应该在块中指定server。这是最常见的 nginx 配置错误

相关内容