网站对下载文件目录“ protectedFiles ”设置了权限,通过 Nginx 的 X-sendfile 设置了只允许内部访问,外部没法访问,下面是 Nginx 的配置文件:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|svg)$
{
expires 30d;
add_header Access-Control-Allow-Origin *;
error_log off;
access_log off;
}
location /protectedFiles
{
internal;
alias /wwwroot/protectedFiles/;
}
现在对于一些 protectedFiles 目录下的 zip 或者 rar 的文件,外部访问都正常的返回 404,但是对于 protectedFiles 目录下的图片文件,外部全都能正常访问,我尝试改了下:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|svg|zip|rar)$
{
expires 30d;
add_header Access-Control-Allow-Origin *;
error_log off;
access_log off;
}
发现 zip 和 rar 文件也可以外部访问了,这是怎么回事?
如果我想实现 protectedFiles 目录下的图片文件的设置为 expires 30d;add_header Access-Control-Allow-Origin *; 同时禁止 protectedFiles 目录下的所有文件禁止外部访问,nginx 该怎么配置?
1
awker 2018-08-24 09:50:58 +08:00
location 匹配有优先级
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|svg)$ 的优先级 高于 location /protectedFiles |
2
awker 2018-08-24 09:52:12 +08:00 1
改成这个
location ^~ /protectedFiles { internal; alias /wwwroot/protectedFiles/; } |
3
oott123 2018-08-24 11:20:57 +08:00
也可以选择不把被保护的文件放到 /wwwroot 下。
|