Nginx Basic Auth 处理目录,但不处理文件
Nginx Basic Auth working on directory, but not files
我刚开始使用 nginx,在使用 apache 多年后切换到它。目前,我正在尝试让 HTTP Basic Auth 工作。使用那里的配置,如果我转到 https://www.website.com/doe. But - if I try to go to the domain https://www.website.com/doe/importanttext.csv,我会在 Chrome 中获得一个基本身份验证对话框 - 它不会要求身份验证,而只是下载文件。我怎样才能完全保护文件夹 - 包含所有内容?
谢谢
server {
[SSL and Server Stuff]
location ^~ /doe/ {
auth_basic "Admin Access";
auth_basic_user_file /var/www/doe/.htpasswd;
}
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
我发现我的错误,我正在使用
auth_basic "Admin Access";
但是,为了保护文件夹中的文件,需要
auth_basic "Restricted";
如果 Nginx 找到匹配的位置,则它会停止查找位置匹配项,然后仅在此路径中导航。因此,如果我还想在受保护的子文件夹中使用 php 和 .ht 保护,我还需要在其中包含这些指令 - 如下所示。
server {
[SSL and Server Stuff]
location ^~ /doe/ {
auth_basic "Admin Access";
auth_basic_user_file /var/www/doe/.htpasswd;
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
我刚开始使用 nginx,在使用 apache 多年后切换到它。目前,我正在尝试让 HTTP Basic Auth 工作。使用那里的配置,如果我转到 https://www.website.com/doe. But - if I try to go to the domain https://www.website.com/doe/importanttext.csv,我会在 Chrome 中获得一个基本身份验证对话框 - 它不会要求身份验证,而只是下载文件。我怎样才能完全保护文件夹 - 包含所有内容?
谢谢
server {
[SSL and Server Stuff]
location ^~ /doe/ {
auth_basic "Admin Access";
auth_basic_user_file /var/www/doe/.htpasswd;
}
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
我发现我的错误,我正在使用
auth_basic "Admin Access";
但是,为了保护文件夹中的文件,需要
auth_basic "Restricted";
如果 Nginx 找到匹配的位置,则它会停止查找位置匹配项,然后仅在此路径中导航。因此,如果我还想在受保护的子文件夹中使用 php 和 .ht 保护,我还需要在其中包含这些指令 - 如下所示。
server {
[SSL and Server Stuff]
location ^~ /doe/ {
auth_basic "Admin Access";
auth_basic_user_file /var/www/doe/.htpasswd;
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}