什么是最简单的方法来限制访问除了一个,其中整个域通过FastCGI服务的所有文件?
使用下面的conf时出现的问题是我无法访问/ dir(我在某种循环中要求input密码,正确的login名+密码不让我进入)。
另外,同样的fastCGIconfiguration复制在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... } }
您可以closuresauth_basic off授权。 这会缩短你的configuration文件,如下所示:(未经testing)
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... } }
“循环”来自于/dir的auth被指定了两次( /和/dir )的事实。 为了放大这个,试着把文本改为"Restricted path /"和"Restricted path /dir" ,你的循环会显示两个消息交替出现。