我的Nginx虚拟主机中有以下secure_link配置:
...
secure_link $arg_st,$arg_e;
secure_link_md5 SECRET$uri$remote_addr$arg_e;
...
现在,当PHP脚本构造的URL如下所示时,上述工作正常:
http://example.com/example_file?st=dzQUOtu5fLZTgBQtQkg8JA&e=1424446841
我的问题是我需要将文件名作为参数传递,因此URL应该在以下行中:
http://example.com/example_file?st=dzQUOtu5fLZTgBQtQkg8JA&e=1424446841&file=example.zip
但这会返回403。 如果没有secure_link模块,我通常会选择
if ($args ~* ^file=(.*)$)
{
set $filename $1;
add_header Content-Disposition "attachment; filename=$filename";
}
我应该如何编辑我的配置,以便能够使用包含上述文件参数的URL下载文件?
谢谢!
修改 在我的代码中修正了拼写错误之后,我现在能够在403处下载该文件而不会达到死胡同。 但是,我无法获取文件名。
编辑2:修正了
rewrite ^/(.*)$ /$1 break;
add_header Content-Disposition "attachment; filename=$arg_file";
答案 0 :(得分:1)
rewrite ^/(.*)$ /$1 break;
add_header Content-Disposition "attachment; filename=$arg_file";
是问题的答案。