2013-09-23 57 views

回答

31

您可以使用兩種IF之前或在地址塊語句來檢查頭,然後返回403錯誤代碼,如果它存在。另外,您也可以使用這些IF語句改寫到一個特定的位置塊,並拒絕所有在該位置:

if ($http_x_custom_header) { 
    return 403; 
} 

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

添加根據註釋詳細/請求:

if ($http_x_custom_header) { 
    return 405; 
} 

這看起來是否存在標題

如果您想檢查是否存在正確的值,那麼您首先需要將正確的值映射到變量。

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

if ($is_ok) { 
    return 405; 
} 

該第一標頭值是否不是其確定,然後檢查是否變量是確定映射。

編輯:映射塊後刪除分號,因爲這將導致錯誤。

+1

+1,如果你可以舉一些例子,那會更加讚賞:)。 – srain

+0

希望這個例子很有幫助。 – Rami

+3

鏈接似乎已過時。這些似乎是更新的選擇。 https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/ http://nginx.org/en/docs/http/ngx_http_access_module.html – Zoredache

相關問題