У меня есть каталог текстовых файлов, который я обслуживаю с помощью apache 2. Обычно, когда я (или любой пользователь) обращаюсь к файлам, они видят их в своем браузере. Я хочу «заставить» * веб-браузер открывать диалоговое окно «Сохранить как». Я знаю, что это можно сделать с Content-Disposition
заголовки (больше информации).
Есть ли способ включить это для каждого файла?
В идеале я бы хотел что-то вроде этого:
<Directory textfiles>
AutoAddContentDispositionHeaders On
</Directory>
И тогда apache установит правильный заголовок размещения контента, в том числе с использованием того же имени файла.
Что-то подобное может быть возможно с apache Header
директива.
Бонусные баллы, если он включен, стоя в apache в debian.
Я мог бы сделать простой скрипт-оболочку PHP, который принимает filename
аргумент, вызывает header(...)
а затем распечатывает файл, но затем мне нужно подтвердить ввод и т. д. Этой работы я пытаюсь избежать.
* Я знаю, что когда дело доходит до Интернета, вы не можете форсировать
Я обнаружил, что это то, что я хочу:
<Location /textfiles>
SetEnvIf Request_URI "^.*/([^/]*)$" FILENAME=$1
Header set "Content-disposition" "attachment; filename=%{FILENAME}e"
UnsetEnv FILENAME
</Location>
mod_headers
должно быть то, что вы ищете:
<IfModule mod_headers.c>
<Location ~ ".*/textfiles/.*">
Header set Content-Disposition attachment
</Location>
</IfModule>