我有一个图像目录,它可以在浏览器中直接查看,也可以在其他时间下载。如何在Apache中同时重写和设置标头
所以,说我有一个文件/gallery/gal_4254.jpg。
我想让/download/gal_4254.jpg触发下载图片而不是查看它。 /下载是空的,所有图像都在/ gallery中。
我可以请求下载目录映射到其他文件成功
<Directory /var/www/download>
RewriteEngine on
RewriteRule (.*)$ /gallery/$1
</Directory>
,我已经可以通过设置
<Directory /var/www/gallery/>
ForceType "image/jpg"
Header set Content-Disposition "attachment"
</Directory>
这样设置标头迫使画廊目录下载是没有问题的。我实际上不希望/ gallery拥有标题,只需要/ gallery/*通过/下载/重写。
但是,我需要结合这两个,所以请求被映射到其他目录中的文件,并且该文件被赋予附件头。
#does not work - just views the image like when it is viewed directly
<Directory /var/www/download>
ForceType "image/jpg"
Header set Content-Disposition "attachment"
RewriteEngine on
RewriteRule (.*)$ /gallery/$1
</Directory>
我试着改变重写和标题部分的顺序无济于事。我认为当请求被重写到另一个目录时,它会丢失标题。
有关如何在Apache中执行此操作的任何建议?
我意识到这也可以用PHP来完成,这就是为什么我在这里发布它与服务器故障。使用PHP的解决方案也是受欢迎的。
谢谢!既然你和xaoc在2分钟内给出了相同的答案,我翻了一个硬币,并且xaoc得到了接受。尽管如此,你还是有我的赏心悦目。 – JAL 2010-03-03 15:44:17