在Nginx中重写规则以阻止特定URL

时间:2012-07-25 06:07:31

标签: nginx rewrite reverse-proxy

我想阻止某个特定网址被访问并返回444错误。

示例:

if ( $request_uri ~ https://subdomain.domain.com/abc/xyzdirector/login.do ) {
return    444;
}

现在这很好用,问题是如果我在浏览器中键入以下URL并更改子目录中的任何大小写,它就不起作用:

示例:

https://subdomain.domain.com/ABC/xyzdirector/login.d
https://subdomain.domain.com/abc/XYZdirector/login.d
https://subdomain.domain.com/abc/xyzdirecTOR/login.d
https://subdomain.domain.com/Abc/XyzDirector/login.d

当我这样做时,网址会被转发并转发。

如何屏蔽此内容?

1 个答案:

答案 0 :(得分:2)

您需要不区分大小写的regex location

location ~* ^/abc/xyzdirector/login\.do$ {
  return 444;
}

如果您的配置中有任何其他正则表达位置,请确保将此位置置于可能与此网址匹配的任何其他位置之上。