nginx 匹配中是否有“不”的对应词?我在想
location !~ "\.(html|php)$" {
deny all;
}
允许仅提供 html 和 php 文件。另一种方法是“拒绝所有”,后跟“允许所有”的 ~。唉,这似乎以某种方式干扰了我 nginx 文件中一些早期的位置魔法。
答案1
您可以像这样使用嵌套位置逻辑:
location / {
deny all;
location ~* "\.(html|php)$" {
Allow all;
}
}
答案2
正则表达式的位置也按其顺序匹配。因此,您也可以使用类似下面的方法:
location ~* "\.(html|php)$" { ...; break; } location ~* "." { deny all; }
注意第二个位置也必须基于正则表达式。