用于限制基于URL的访问的nginx规则

时间:2015-10-30 16:32:00

标签: regex nginx

我正在尝试在nginx中设置规则,如果从指定的ip地址范围之外访问某个URL,我将拒绝流量。我想建立一个基本上可以说明以下内容的规则,而不是指定需要保护的url模式: 如果URL不是某种url格式,请在permissions.conf文件中应用deny / allow规则。

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

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 ~* ^(?!/a/test/) {
    include permissons.conf
}

提前致谢

1 个答案:

答案 0 :(得分:0)

我想你可以试试这个:

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