![](/img/trans.png)
[英]Nginx secure_link return 403 if filename has symbol characters
[英]Set filename from URL on Nginx with secure_link module enabled
我的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";
}
我應該如何編輯我的配置以便能夠下載包含上面的file參數構造的URL的文件?
謝謝!
編輯:修正了我的代碼中的拼寫錯誤之后,現在我可以下載文件而不會在403出現死角。但是,我無法使文件名起作用。
編輯2:修復它
rewrite ^/(.*)$ /$1 break;
add_header Content-Disposition "attachment; filename=$arg_file";
rewrite ^/(.*)$ /$1 break;
add_header Content-Disposition "attachment; filename=$arg_file";
是問題的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.