Dragon
主机之家测评主机之家测评  2019-08-28 01:47 主机之家测评 隐藏边栏 |   抢沙发  144 
文章评分 0 次,平均分 0.0

浏览器针对 txt 文件一般默认是直接打开的,解决办法就是告诉浏览器这种类型的文件需要下载而不是直接打开,在 nginx 中通过反向代理可以直接过滤访问的 url 在指定的访问中添加 header,具体如下:

  server {         #监听的端口               listen       80;               server_name  www.02405.com;               location / {                   root   html;                   <span style="color:#ff0000;">if ($request_filename ~* ^.*?.(</span><span style="color:#ff0000;">txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx</span><span style="color:#ff0000;">)$){                          add_header Content-Disposition attachment;                   }          </span>                                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 服务才可以生效。

nginx 强制下载 txt 文件,nginx 禁止浏览器直接打开 txt 文件

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

发表评论

扫一扫二维码分享