3 回答
TA贡献1818条经验 获得超8个赞
请分别查看FilesMatch和Files的文档。它明确指出
本节中给出的指令将应用于具有与指定文件名匹配的basename(filename的最后一个组件)的任何对象。
这意味着在您的示例中它匹配file.pdf。你的第二个例子*.*匹配file.pdf,但你的第一个例子.*uploads/documents.*没有。它实际上永远不会匹配,因为它包含一个斜杠,用作目录分隔符。
如果可以编辑apache配置
您应该在指令中附上<Files *.*>或<Files *.pdf>(取决于您要强制下载的内容)Location:
<Location "/uploads/documents/">
<Files *.*>
ForceType application/octet-stream
Header set Content-Disposition attachment
</Files>
</Location>
如果你不能编辑apache配置
不幸的是,.htaccess文件中不允许使用Location指令。只需在/uploads/documents/目录中创建一个.htaccess即可。
TA贡献1780条经验 获得超1个赞
搜索更多信息,找到此代码:
<FilesMatch "\.(mov|mp3|jpg|pdf|mp4|avi|wmv)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
为我工作。
TA贡献2041条经验 获得超4个赞
如果您不使用- 文件名,此代码是完美的 !
例如,对于name-1.mp3,请更改为name1.mp3
<FilesMatch "\.(mp3|avi)$" >
ForceType application/octet-stream
Header add Content-Disposition "attachment"
</FilesMatch>
清除浏览器并进行检查。
添加回答
举报