我需要在网页上提供一个按钮,可以选择下载图像文件并将其存储在客户端的文件系统中。我想用Force a file or image to download using .htaccess的方法 并按照the Apache documentation,
的风格在我的.htaccess中写道<If "%{QUERY_STRING} =~ /download/">
Header set Content-Disposition attachment
</If>
然后我提供了像http://www.example.com/images/image123.jpeg?download=true这样的链接,这对我的生产服务器工作正常。但它在我的桌面上使用OS / X的apache或MAMP在我的Mac开发系统上给了error 500
。 Apache抱怨它不理解<If>
语句,而serverFault告诉我Apache 2.2不理解。 OS / X和MAMP都提供Apache 2.2。
有没有办法可以重写<if>
语句以在Apache 2.2中产生相同的效果呢?
我不能使用
<a download="clientFileName.jpg" href="/images/image123.jpeg">Download</a>
因为它无法在IE11或Safari中使用。
答案 0 :(得分:2)
您可以先使用重写规则设置env变量:
RewriteEngine On
RewriteCond %{QUERY_STRING} (?:^|&)download=[^&]+ [NC]
RewriteRule ^ - [E=DL:1,L]
然后在有条件设置标题中使用此env变量:
Header set Content-Disposition attachment env=DL