Regex 基于url限制访问的nginx规则

Regex 基于url限制访问的nginx规则,regex,nginx,Regex,Nginx,我试图在nginx中设置一个规则,如果从指定的ip地址范围之外访问某个url,我将拒绝通信。我不想指定需要保护的url模式,而是想设置一个规则,该规则基本上如下所示: 如果URL不是特定的URL格式,请在permissions.conf文件中应用拒绝/允许规则 以前我有过这个(似乎有用): location ^~ /admin { include permissions.conf file } permissions.conf文件 allow 127.0.0.1; deny a

我试图在nginx中设置一个规则,如果从指定的ip地址范围之外访问某个url,我将拒绝通信。我不想指定需要保护的url模式,而是想设置一个规则,该规则基本上如下所示: 如果URL不是特定的URL格式,请在permissions.conf文件中应用拒绝/允许规则

以前我有过这个(似乎有用):

location ^~ /admin {
   include permissions.conf file
}
permissions.conf文件

  allow 127.0.0.1;
   deny all;
现在,我想替换上面的规则,并指定一个只有在url不是特定模式时才会命中的规则(因此,在下面的例子中,如果它不是/a/test,那么它应该应用permissions.conf文件。下面的格式不起作用-关于如何修复它,有什么想法吗

location ~ (/a\/(?!test)) {
    include permissons.conf
}
我也试过这个:

location ~ (/a/(?!test)) {
    include permissons.conf
}
&


提前谢谢

我想你可以试试这个:

location / {
   if ($request_uri !~ "^/a/test$")
   {
     include permissons.conf
   }
}
location / {
   if ($request_uri !~ "^/a/test$")
   {
     include permissons.conf
   }
}