所以我在 htaccess 中使用以下规则:
AddType SCHM wsc
<FilesMatch "\.(wsc)$">
ForceType SCHM
Header set Content-Disposition attachment
</FilesMatch>
但是当我去file's location它不会强制下载
最佳答案
由于该问题已在评论中得到解答,因此仅以 Stackoverflow 指定它的方式提供答案。
就像在问题中一样,它可以通过使用 Apache 2 的 mod_headers 来解决。因为 Content-Disposition
不是 HTTP 标准的一部分,您可以添加一些其他 header 来实现您的目标。
<FilesMatch "\.(wsc)$">
Header set Content-Type application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
您应该考虑的另一件事是您的浏览器可能会缓存服务器的响应。浏览器仍会发送请求,但请求将包含一个节点,该节点表明浏览器已经拥有来自给定日期的文件。如果文件自给定日期以来未更改,则服务器不会将新 header 发送到您的浏览器。这意味着如果您更改 .htaccess,您可能不会看到任何影响,直到您禁用浏览器中的缓存或更改文件的时间戳。
您还可以添加
Header set X-Content-Type-Options "nosniff"
为了更好的兼容性(可能还有安全性)。它可以防止浏览器进行 MIME 类型嗅探,这会忽略声明的内容类型。见 here想要查询更多的信息。
关于.htaccess - 使用 .htaccess 强制下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33187793/