Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制使用.htaccess下载文件_.htaccess_Download - Fatal编程技术网

强制使用.htaccess下载文件

强制使用.htaccess下载文件,.htaccess,download,.htaccess,Download,因此,我在htaccess中使用以下规则: AddType SCHM wsc 力型SCHM 标题集内容处置附件 由于问题已经在评论中得到了回答,这只是以Stackoverflow指定的方式提供答案 就像问题中一样,它可以通过使用Apache2的mod_头来解决。由于Content Disposition不是HTTP标准的一部分,您可以添加一些其他头来实现您的目标 <FilesMatch "\.(wsc)$"> Header set Content-Type applicat

因此,我在htaccess中使用以下规则:

AddType SCHM wsc
力型SCHM
标题集内容处置附件

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

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

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

为了更好的兼容性(也许还有安全性)。它防止浏览器进行MIME类型嗅探,这将忽略声明的内容类型。有关更多信息,请参阅。

RFC2616,如需了解19.5.1内容配置

如果此标头用于具有application/octet-stream内容类型的响应,则暗示用户代理不应显示响应,而应直接进入“将响应另存为…”对话框


您使用的是哪种浏览器?我的Chrome 45下载文件我正在使用Chrome,但在其他网站上对我有效,但在我的ftp上它只显示浏览器中的二进制文件。也许你还应该将
内容类型设置为
应用程序/octet流
。我想有人会这样想:
头集内容类型应用程序/octet流
@JojOatXGME我试过了,但没用,因为它在我的电脑上工作过,我不知道为什么它对你不起作用。我已经看到,如果文件已经在缓存中,服务器会响应“notmodified”。也许你的浏览器只是缓存文件,而不知道你已经添加了这个头条目。在这种情况下,只有更新的文件修改日期才会导致在浏览器中重新加载。您可以在Linux的shell中使用
touch
来更改时间戳。这是正确的,但是(尽管没有强制执行)文件名附加在附件配置类型之后,并且有一些浏览器(IE)嗅探二进制文件的前几个字节以猜测mimetype,下面是一个完整的(er)
Header set X-Content-Type-Options "nosniff"