1

我想阻止特定的 URL 被访问并返回 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

当我这样做时,URL 被转发和服务。

我该如何阻止这个?

4

1 回答 1

4

您想要一个不区分大小写的正则表达式位置

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

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

于 2012-07-25T11:22:32.107 回答