我已经nginx
安装php-fpm
在Debian Squeeze
。
目录树是:
- /var/www/我的网站
- 索引.php
- secret_folder_1
- 管理员账户
- 静态.html
- secret_folder_2
- 管理员账户
- 静态.html
- 图片
- 图片01.jpg
我需要用 关闭和secret_folder_1
。现在配置如下所示:secret_folder_2
basic_auth
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;
}
相同的配置secret_folder_2
。
这正常吗?我的意思是,第一个位置用于提供php
受限文件夹中的文件,第二个位置用于提供静态文件。
可以简化吗?
答案1
嵌套位置可能更好:
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_root
变量而不是硬编码来定义 SCRIPT_FILENAME 参数/var/www/mysite/
:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;