2012-07-25 84 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