nginx capture tous les autres emplacements que ceux indiqués

19

J'ai quelques emplacements sur mon serveur. Je veux capturer tous les autres emplacements que les utilisateurs donnent via le navigateur. Comment faire ça? Par exemple

 server {
     ...
     location /location1 {
              do something;
     }
     location /location2 {
              do something;
     }
     location /all_other_locations {
            return 301 http://www.google.de
     }
alabamajack
la source

Réponses:

31

Les emplacements de nginx sont basés sur des préfixes (à l'exception des expressions rationnelles), donc location /correspondent à toutes les demandes, sauf si une plus spécifique correspond.

server {
    location / {
        # catch all unless more specific location match
    }

    location /location1 {
        # do something
    }

    location /location2 {
        # do domething
    }
}
Alexey Ten
la source
1
Et si vous vouliez /faire correspondre quelque chose de spécifique et que tout le reste soit attrapé par quelque chose d'autre? Souhaitez-vous utiliser la correspondance générique alors?
Tim Tisdall
3
ah .. je pense que ça peut être à utiliser location = /. La /demande explicite sera mise en correspondance par elle et tout le reste ira à location /moins que quelque chose d'autre ne corresponde.
Tim Tisdall