使用Apache下载特定扩展名的文件

3

我在Apache Web服务器上下载了一个目录。该目录中的文件具有特定的扩展名,例如*.yyy和*.zzz。但是所有这些文件都被重命名为.zip或.tar.gz。

我已经在不同的浏览器中进行了测试,没有遇到任何问题。

但是一些用户告诉我他们只获取到了包的源代码,而没有下载到完整的包。

我已经创建了.htaccess文件。

AddType application/zip .zzz
AddType application/x-gzip .yyy

然而,当我尝试在MS Internet Explorer中下载aaa.yyy时,它会尝试保存的不是aaa.yyy,而是aaa.gz

如何强制浏览器下载文件而不更改扩展名?

1个回答

6
<FilesMatch "\.(zzz|yyy)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

强制类型告诉浏览器你不知道文件类型,所以它们不会做任何愚蠢的事情。第二行告诉浏览器下载此文件。


这个目录中的所有文件都应该可以下载。我能使用类似于<FilesMatch ".(.)*$">的东西吗? - dr0zd
1
移除文件匹配应该可以满足您的需求。 - Soroush Falahati
1
回答可以通过发送文件名来改进,例如Content-Disposition => attachment; filename=CrashPlan_2011_1.16_arm-x09.qpkg,如http://serverfault.com/questions/101948/how-to-send-content-disposition-headers-in-apache-for-files所示。 - Pro Backup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接