浏览器针对txt文件一般默认是直接打开的,解决办法就是告诉浏览器这种类型的文件需要下载而不是直接打开,在nginx中通过反向代理可以直接过滤访问的url在指定的访问中添加header,具体如下:
server {
#监听的端口
listen 80;
server_name www.codesou.cn;
location / {
root html;
if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
add_header Content-Disposition attachment;
}
index index.html index.htm;
}
}
红色代码表示过滤访问的url中以txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx结尾的,动态添加header:Content-Disposition attachment。
重点注意网上很多资料中都是add_header Content-Disposition: ‘attachment’;,相较于上面的代码多了一个’:’符号,这样写在IE,火狐等浏览器中都没问题,但在谷歌浏览器中仍然无法正常下载,而直接打开!
经过检查,问题就是出现在这个多出来的冒号上了,去掉冒号,完全按照上面两行红色代码写就可以了。
另外需要注意的是更改nginx配置文件,需要重启nginx服务才可以生效。
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » nginx强制下载txt文件,nginx禁止浏览器直接打开txt文件
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » nginx强制下载txt文件,nginx禁止浏览器直接打开txt文件