我想知道是否可以使用 .htaccess
强制仅在存在特定 GET 变量时才下载文件,就像 Dropbox 那样。
示例:
http://www.domain.com/file.mp4
服务器只提供文件服务,而:
http://www.domain.com/file.mp4?dl
强制浏览器下载文件。
PS:在我的情况下,将 PHP
与 readfile()
结合使用并不是一个可行的选择。谢谢。
最佳答案
FilesMatch 的模式与查询字符串不匹配,仅与正确的文件名匹配。
但是,您可以使用 mod_rewrite 模块、%{QUERY_STRING}
变量和 T flag :
RewriteCond %{QUERY_STRING} dl
RewriteRule .*\.mp4 - [T=application/octet-stream]
或者,如果您的 Apache > 2.3(我认为),您可以使用 If directive ,这更干净:
<FilesMatch "filepattern.mp4">
<If "%{QUERY_STRING} =~ /dl/">
ForceType application/octet-stream
Header set Content-Disposition attachment
</If>
</FilesMatch>
第一个解决方案已更新。
关于apache - 是否可以使用 .htaccess 和特定的 GET 请求(Dropbox 样式)强制下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9760189/