2012-07-25 26 views
0

我想阻止特定的URL被访问并返回444错误。在Nginx中重写规则以阻止特定的URL

例子:

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 

当我这样做,网址得到转发和servered。

我该如何阻止?

回答

2

你想不区分大小写的regex location

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

如果你在你的配置任何其他正则表达式的位置,确保你把这个上面可以匹配这个网址的任何人。

+0

谢谢你的回答。它非常完美,像魅力一样工作。迟到的回复道歉。 – 2012-10-10 14:03:48