Php
對單個文件的無限制訪問 + FastCGI with basic_auth 用於 nginx 中的整個域
限制對除一個文件之外的所有文件的訪問的最簡單方法是什麼,其中整個域是通過 FastCGI 提供的?
使用以下 conf 時出現的問題是我無法訪問 /dir (在某種循環中要求我輸入密碼,正確的登錄名+密碼不讓我進入)。
此外,相同的 fastCGI 配置在 location = /unrestricted_file.php 和 location ~ .php$ 中重複。
結構是:
server { location = /unrestricted_file.php { # FastCGI conf... break; } location / { root index auth_basic "Restricted"; auth_basic_user_file file; } location /dir { auth_basic "Restricted"; auth_basic_user_file file; } location ~ \.php$ { auth_basic "Restricted"; auth_basic_user_file file; # fastcgi_pass... } }
您可以使用 關閉位置的身份驗證
auth_basic off
。這會將您的配置文件縮短為如下所示:(未經測試)server { auth_basic "Restricted"; auth_basic_user_file file; location = /unrestricted_file.php { auth_basic off; # fastcgi_pass... } location / { root index } location ~ \.php$ { # fastcgi_pass... } }
“循環”來自這樣一個事實,即 auth for
/dir
被指定了兩次(/
和/dir
)。要放大這一點,請嘗試將文本更改為"Restricted path /"
and"Restricted path /dir"
並且您的循環應該交替顯示兩條消息。