如果在location /
例如內創造了這個if
,創建一個單獨的location /some-page
這樣,當URI是/some-page
編輯的
if
不會被執行:確定讓我解釋一下我的理解,你告訴我,如果我是對還是錯,
- 好IP(你的):服務頁面,因爲它是
- 錯誤的IP(不是你的):重定向到
/some-page
的問題是,當錯誤的IP被重定向到/some-page
它仍然重定向到/some-page
再次,因爲它仍然是一個錯誤的IP,所以它通過if
測試
我的解決辦法:從取出/some-page
位置/
塊:
location/{
# bla bla
if ($remote_addr != 127.0.0.1) {
rewrite^http://www.example.com/some-page;
}
# rest of bla bla
}
location /some-page {
try_files index.html index.php; # or whatever
}
當錯誤的IP轉發到/some-page
它不再將執行if
條件,以便將結束的無限redire ction循環。
第二個編輯:您可以設置在nginx的它自已的權限,讓我證明:
location/{
error_page 403 = @badip
allow 127.0.0.1;
deny all;
#rest of bla bla
}
location @badip {
return 301 $scheme://example.com/some-page;
}
我不認爲我理解你。我希望檢查影響'server'塊中的每個請求。添加一個「位置/一些頁面」不起作用。 – user1814016
檢查我編輯的答案,試圖解釋我的意思 –