使用.htaccess

时间:2015-10-17 14:38:04

标签: .htaccess download

所以我在htaccess中使用以下规则:

AddType SCHM wsc

<FilesMatch "\.(wsc)$">
  ForceType SCHM
  Header set Content-Disposition attachment
</FilesMatch>

但是当我转到file's location时,它不会强制下载

2 个答案:

答案 0 :(得分:2)

由于问题已经在评论中得到解答,这只是为了提供Stackoverflow指定它的方式的答案。

在问题中,可以使用 Apache 2 mod_headers 来解决。由于Content-Disposition不是 HTTP 标准的一部分,因此您可以添加其他标题以实现目标。

<FilesMatch "\.(wsc)$">
    Header set Content-Type application/octet-stream
    Header set Content-Disposition attachment
</FilesMatch>

您应该考虑的另一件事是您的浏览器可能会缓存服务器的响应。浏览器仍将发送请求,但请求将包含浏览器已在给定日期拥有该文件的节点。如果自给定日期以来文件没有更改,则服务器不会将新标头发送到您的浏览器。这意味着如果您更改 .htaccess ,在浏览器中禁用缓存或更改文件的时间戳之前,您可能看不到任何影响。

您也可以添加

Header set X-Content-Type-Options "nosniff"

以获得更好的兼容性(也许是安全性)。它阻止浏览器进行MIME类型的嗅探,这会忽略声明的内容类型。有关详细信息,请参阅here

答案 1 :(得分:1)

RFC2616对于19.5.1内容处理说法

  

如果在带有application / octet-stream内容类型的响应中使用此标头,则隐含的建议是用户代理不应显示响应,而是直接输入“save response as ...”对话框。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1