Nginx 服务器不会自动提供子文件夹中的 index.html 文件

Nginx 服务器不会自动提供子文件夹中的 index.html 文件

这就是我想要实现的目标:

物理路径: /子文件夹/index.html

用户输入的 URL: site.com/子文件夹

输出:无论 /subfolder/index.html 的内容是什么。

我读到这应该会自动运行,但显然它在 Nginx 上不起作用。(我已经在 Apache 上测试过了,它可以自动运行。)

复制此行为的最佳方法是什么?我需要使用重写吗,还是可以在配置文件中进行简单更改?

编辑: 这是我的配置文件副本的链接。 我知道它提到了两次索引,并且 try_files 部分有点奇怪。这两件事都来自我对不同设置的实验。

答案1

你漏掉了一条index声明:

server {
    ...

    location / {
        ...
        index  index.html index.htm;
    }
}

答案2

解决方案是从我的配置中删除以下几行。

if (!-f $request_filename) {
    rewrite ^ /index.html last;    
}

感谢@Dennis Kaarsemaker 建议从我的配置中删除一些行来查看问题所在。

相关内容