nginx łapie wszystkie inne lokalizacje niż podane

19

Mam kilka lokalizacji na moim serwerze. Chcę złapać wszystkie inne lokalizacje, które użytkownicy podają za pośrednictwem przeglądarki. Jak to zrobić? Na przykład

 server {
     ...
     location /location1 {
              do something;
     }
     location /location2 {
              do something;
     }
     location /all_other_locations {
            return 301 http://www.google.de
     }
alabamajack
źródło

Odpowiedzi:

31

Lokalizacje nginx są oparte na prefiksach (z wyjątkiem wyrażeń regularnych), więc location /pasują do wszystkich żądań, chyba że jedno bardziej szczegółowe.

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

    location /location1 {
        # do something
    }

    location /location2 {
        # do domething
    }
}
Alexey Ten
źródło
1
Co jeśli chcesz /dopasować coś konkretnego, a następnie wszystko inne zostanie złapane przez coś innego? Czy użyłbyś wtedy dopasowywania symboli wieloznacznych?
Tim Tisdall
3
ah .. Myślę, że to może być użycie location = /. Wyraźne /żądanie zostanie dopasowane i wszystko inne przejdzie, location /chyba że coś innego będzie pasować.
Tim Tisdall