强制使用 .htaccess 下载文件

lop*_*ata 4 .htaccess download

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

AddType SCHM wsc

<FilesMatch "\.(wsc)$">
  ForceType SCHM
  Header set Content-Disposition attachment
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

但是当我转到文件位置时它不会强制下载

Joj*_*GME 6

由于该问题已在评论中得到解答,因此这只是按照 Stackoverflow 指定的方式提供答案。

就像在问题中一样,它可以通过使用Apache 2mod_headers来解决。由于它不是HTTP标准的一部分,您可以添加一些其他标头来实现您的目标。Content-Disposition

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

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


您还可以添加

Header set X-Content-Type-Options "nosniff"
Run Code Online (Sandbox Code Playgroud)

为了更好的兼容性(也许还有安全性)。它可以防止浏览器执行 MIME 类型嗅探,这会忽略声明的内容类型。浏览此处获取更多信息。