web-dev-qa-db-fra.com

Configuration de nginx pour renvoyer un 404 lorsqu'une URL correspond à un modèle

Je veux que nginx renvoie un code 404 lorsqu'il reçoit une demande qui correspond à un modèle, par exemple /test/*. Comment puis-je configurer nginx pour cela?

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

Besoin d'ajouter "^ ~" pour donner à cette correspondance une priorité plus élevée que les blocs d'emplacement regex.

location ^~ /test/ {
  return 404;
}

Sinon, vous serez dans une situation délicate. Par exemple, si vous avez un autre bloc d'emplacement tel que

location ~ \.php$ {
  ...
}

et quelqu'un envoie une demande à http://your_domain.com/test/bad.php , ce bloc d'emplacement regex sera choisi par nginx pour servir la demande. Ce n'est évidemment pas ce que vous voulez. Assurez-vous donc de mettre "^ ~" dans ce bloc d'emplacement!

Référence: http://wiki.nginx.org/HttpCoreModule#location

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