可以强制下载.htaccess和特定的GET请求(Dropbox风格)吗?

ach*_*art 4 apache .htaccess

我想知道是否有可能.htaccess只在有特定的GET变量时才强制下载文件,就像Dropbox一样.

例:

http://www.domain.com/file.mp4
Run Code Online (Sandbox Code Playgroud)

服务器只提供文件,而:

http://www.domain.com/file.mp4?dl
Run Code Online (Sandbox Code Playgroud)

强制浏览器下载文件.

PS:使用PHPreadfile()它不是我的情况下,一个可行的选择.谢谢.

SáT*_*SáT 10

FilesMatch的模式与查询字符串不匹配,只有文件名正确.

但是,您可以使用mod_rewrite模块,%{QUERY_STRING}变量和T标志:

RewriteCond %{QUERY_STRING} dl
RewriteRule .*\.mp4 - [T=application/octet-stream]
Run Code Online (Sandbox Code Playgroud)

或者,如果您有Apache> 2.3(我认为),您可以使用If指令,它更清洁:

<FilesMatch "filepattern.mp4">
   <If "%{QUERY_STRING} =~ /dl/">
      ForceType application/octet-stream
      Header set Content-Disposition attachment
   </If>
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

第一个解决方案已更新