Nginx location 模块配置问题

2021-09-13 13:15:02 +08:00
 AerithLoveMe
目前 Nginx 模块配置如下:

location ^~ /jenkins

location ^~ /upload

location = / {
root html;
index welcome.html;
}

location ^~ /image/

为什么我请求 xxx.com/index.html 居然可以请求成功(可以访问 html/index.html ),= 不应该是精准匹配吗?按我理解应该返回 404 not found 吧?
964 次点击
所在节点    问与答
6 条回复
iBugOne
2021-09-13 13:17:41 +08:00
你是不是在外面*也*配了 root 和 index,如果有的话没匹配到的 location 就会按 server 块里的 root 和 index 处理
AerithLoveMe
2021-09-13 13:22:07 +08:00
@iBugOne 并没有 我剩下的只配了 error_page 404 /error.html;
location = /error.html {
root html;
}

error_page 403 /403.html;
location = /403.html {
root html;
}

还有就是其它域名的 server,和这个匹配无关
18x
2021-09-13 13:40:52 +08:00
你只是默认主页换了 又不影响直接输完整地址访问
iBugOne
2021-09-13 14:02:35 +08:00
最外层 http 块也有 root 和 index 会生效,也去检查一下吧,一般在 /etc/nginx/nginx.conf 里
AerithLoveMe
2021-09-13 14:12:56 +08:00
@iBugOne 真的没有了 我全部检查了一遍,进入了这个 server 块,只有这些配置
AerithLoveMe
2021-09-13 14:14:35 +08:00
@18x 不应该吧 =是精准匹配。我这个 html 下的东西它全部可以访问,那我配置这个没意义了吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX