2013-09-23 18 views

Odpowiedz

31

można korzystać z dwóch IF przed lub w bloku lokalizacji do wglądu nagłówki, a następnie powrót kod 403 błędu, jeśli jest on obecny. Alternatywnie, można użyć tych IF przepisać do konkretnego bloku lokalizacji i negować wszystko w tym miejscu:

if ($http_x_custom_header) { 
    return 403; 
} 

referencyjny:
https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
https://nginx.org/en/docs/http/ngx_http_access_module.html

Dodanie więcej szczegółów na komentarz/zapytanie:

if ($http_x_custom_header) { 
    return 405; 
} 

to wygląda, czy nagłówek istnieje

Jeśli chcesz sprawdzić, czy istnieją prawidłowe wartości, najpierw musisz odwzorować prawidłowe wartości na zmienną.

map $http_x_header $is_ok { 
    default "0"; 
    Value1 "1"; 
    Value2 "1"; 
    Value3 "1"; 
} 

if ($is_ok) { 
    return 405; 
} 

ten pierwszy odwzorowuje wartość nagłówka czy jest ok, a następnie sprawdza, czy zmienna jest w porządku.

EDYCJA: Usunięto średnik po bloku mapy, ponieważ powoduje to błąd.

+1

+1, Byłoby to znacznie bardziej doceniane, jeśli możesz podać kilka przykładów, :). – srain

+0

Mam nadzieję, że ten przykład jest pomocny. – Rami

+3

Linki wydają się być nieaktualne. Te wydają się być zaktualizowanymi alternatywami. https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/ http://nginx.org/en/docs/http/ngx_http_access_module.html – Zoredache

Powiązane problemy