nginx:正则表达式匹配不相等?

nginx:正则表达式匹配不相等?

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; }

注意第二个位置也必须基于正则表达式。

相关内容