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 に答える