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
     }

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
    }
}

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.