Назад | Перейти на главную страницу

Как отправить заголовки Content-Disposition в apache для файлов?

У меня есть каталог текстовых файлов, который я обслуживаю с помощью 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>