web-dev-qa-db-ja.com

URLがパターンに一致したときに404を返すようにnginxを構成する

Nginxがパターンに一致するリクエストを受け取ったときに404コードを返すようにしたい、例えば/test/*。それを行うためにnginxを設定するにはどうすればよいですか?

58
shanqn
location /test/ {
  return 404;
}
87
Vicheanak

このマッチに正規表現ロケーションブロックより高い優先度を与えるには、「^〜」を追加する必要があります。

location ^~ /test/ {
  return 404;
}

それ以外の場合は、いくつかのトリッキーな状況になります。たとえば、次のような別のロケーションブロックがある場合

location ~ \.php$ {
  ...
}

誰かが http://your_domain.com/test/bad.php にリクエストを送信すると、その正規表現の場所のブロックはリクエストを処理するためにnginxによって選択されます。明らかにそれはあなたが望むものではありません。そのため、必ずその場所ブロックに「^〜」を入れてください!

リファレンス: http://wiki.nginx.org/HttpCoreModule#location

20
Chuan Ma
location ^~ /test/ {
    internal;
}
4
Jim