2014-10-27 10 views

Odpowiedz

5

Od nginx docs:

Lokalizacja może być zdefiniowana przez ciąg prefiksu lub wyrażenie regularne. Wyrażenia regularne są określone za pomocą poprzedzającego modyfikatora "~ *" (w przypadku dopasowywania bez rozróżniania wielkości liter) lub modyfikatora "~" (w przypadku dopasowywania wielkości liter).

Tak więc ~* w lokalizacji należy używać do dopasowywania wielkości liter.

location ~* /something/ { 
    # your code here 
} 
+1

To już nie jest * * pre ** fix string, jeśli używasz wyrażenia regularnego. Upewnij się, że robisz "location ~ * ^/something /", aby dopasować je tylko od początku. –

10

Zakładam, że http://example.com/something nie zostanie przekierowany. Więc używać lokalizację prefiksu dla przypadku meczu wrażliwej z modyfikatorem ^~ aby pominąć sprawdzanie wyrażeń regularnych:

location ^~ /something { 
    return 200 "case sensitive something match 
"; 
} 

Teraz dodaj wielkość liter ma znaczenie regularnego lokalizację wyrażenie dla przekierowania:

location ~* ^/something { 
    return 301 $scheme://$host/something; 
} 
+0

Dziękuję za ostatni kawałek z karetką. To było dokładnie to, czego potrzebowałem. –

Powiązane problemy