nginx 中 location 匹配问题

2020-06-11 09:54:23 +08:00
 azev

匹配根目录下的 txt 文件
location ~ /.*\.txt 是不是这样?

1365 次点击
所在节点    问与答
9 条回复
noqwerty
2020-06-11 09:57:35 +08:00
azev
2020-06-11 09:57:53 +08:00
感觉 .* 好像会有问题 要不要换成 .*? 呢
azev
2020-06-11 10:00:29 +08:00
@noqwerty 不用这么恶心
google 看了十来篇 总是讲后缀或讲目录 不知是有意还是无意忽略这个情形
julyclyde
2020-06-11 10:45:19 +08:00
你这个其实是“斜杠开头 txt 结尾但中间不一定几层目录”的匹配规则吧?
wuqingdzx
2020-06-11 10:50:46 +08:00
你这个不仅会匹配根目录,也会匹配二级目录.

按我理解这么写
```ini

location ~ ^/[^/]*\.txt? {
root /var/www/html/;
}

location ~ ^/.*\.txt? {
deny all;
}

```
/a.txt /var/www/html/ 里匹配
/a/a.txt 返回 403
Vegetable
2020-06-11 10:52:45 +08:00
aunox
2020-06-11 10:54:38 +08:00
你这个应该是匹配所有的后缀.txt 的 URL
gesse
2020-06-11 13:44:03 +08:00
@noqwerty
优秀! 哈哈哈··
azev
2020-06-11 17:03:15 +08:00
@julyclyde 对 应该是有这个问题

@Vegetable 工具不错 试了下这个当中的.还是能匹配到多级目录

@wuqingdzx 这个是可以的 但最后的问号貌似没有必要?

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

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

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

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

© 2021 V2EX