У меня есть каталог изображений, которые поочередно можно просматривать непосредственно в браузере и в других случаях загружать.
Итак, скажем, у меня есть файл /gallery/gal_4254.jpg.
Я хочу, чтобы /download/gal_4254.jpg вызывал загрузку изображения, а не его просмотр. / скачать пусто, все изображения в /gallery.
Я могу успешно сопоставить запросы на загрузку в другие файлы
<Directory /var/www/download>
RewriteEngine on
RewriteRule (.*)$ /gallery/$1
</Directory>
и я уже могу принудительно загружать файлы в галерее dir, установив
<Directory /var/www/gallery/>
ForceType "image/jpg"
Header set Content-Disposition "attachment"
</Directory>
так что установка заголовков не проблема. На самом деле я не хочу, чтобы / gallery имел заголовки, просто переписал запросы / gallery / * through / download /.
Но мне нужно объединить два, чтобы запрос был сопоставлен с файлом в другом каталоге, а файлу был присвоен заголовок вложения.
#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, поэтому я разместил его здесь, вместо Server Fault. Также будет приветствоваться решение с использованием PHP.