Nginx fangen alle anderen Orte als angegeben

19

Ich habe einige Standorte auf meinem Server. Ich möchte alle anderen Orte erfassen, die Benutzer über den Browser angeben. Wie geht das? Beispielsweise

 server {
     ...
     location /location1 {
              do something;
     }
     location /location2 {
              do something;
     }
     location /all_other_locations {
            return 301 http://www.google.de
     }
Alabamajack
quelle

Antworten:

31

Die Speicherorte von nginx basieren auf Präfixen (mit Ausnahme von regulären Ausdrücken). Daher werden location /alle Anforderungen berücksichtigt, sofern keine genaueren Anforderungen vorliegen .

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

    location /location1 {
        # do something
    }

    location /location2 {
        # do domething
    }
}
Alexey Ten
quelle
1
Was wäre, wenn Sie /etwas Bestimmtes zusammenbringen möchten und dann alles andere von etwas anderem erfasst wird? Würden Sie dann Wildcard Matching verwenden?
Tim Tisdall
3
ah .. ich denke es könnte sein zu benutzen location = /. Die explizite /Anforderung wird damit abgeglichen, und alles andere wird ausgeführt, location /sofern nichts anderes übereinstimmt.
Tim Tisdall