【发布时间】:2019-12-24 22:31:51
【问题描述】:
我有一个示例 Web 服务器,在 www 目录中只有一个 index.html 文件。我可以使用以下配置设置 nginx:
location /subfolder {
alias /data/www;
try_files $uri $uri/ /index.html;
}
在浏览器中我可以在我的本地域test.local/subfolder 上看到正确的响应,同时test.local/subfolder/something 返回一个默认的 nginx 页面(这是正常的,因为没有设置 root)
如果我将配置更改为
location /subfolder {
alias /data/www;
try_files $uri $uri/ /index.html =404;
}
对test.local/subfolder 的响应仍然正确,但是test.local/subfolder/something 和所有带有/subfolder 前缀的URI 返回一个正确响应的index.html,状态也是200 而不是404。如果我从try_files 中删除/index,我会得到相同的结果结果
我想知道 nginx 如何处理 =404 回退的请求,但找不到任何信息,甚至在官方文档中也没有。
UDAPTE:
我发现别名指令应该以 / 结尾,但仍然没有得到 =404 的功能和用途,因为状态仍然是 200ok
【问题讨论】:
标签: nginx nginx-location