我有nginx在Debian Squeeze上安装了php-fpm 。
目录树是:
我需要用basic_authclosuressecret_folder_1和secret_folder_2 。 现在configuration看起来像:
location ~ /secret_folder_1/.+\.php$ { root /var/www/mysite/; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME /var/www/mysite$fastcgi_script_name; include fastcgi_params; auth_basic "Restricted Access"; auth_basic_user_file /path/to/.passwd; } location ~ /secret_folder_1/.* { root /var/www/mysite/; auth_basic "Restricted Access"; auth_basic_user_file /path/to/.passwd; }
相同的configuration为secret_folder_2 。
这是正常的吗? 我的意思是,在限制文件夹中提供php文件的第一个位置,以及提供静态文件的第二个位置。
可以简化吗?
嵌套的位置可能会更好:
location /secret_folder_1 { root /var/www/mysite/; auth_basic "Restricted Access"; auth_basic_user_file /path/to/.passwd; location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi.conf; } }
请注意,您应该使用$document_rootvariables而不是硬编码/var/www/mysite/来定义SCRIPT_FILENAME参数:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;