Установить заголовок Content-Disposition в вложение только на файлы в определенном каталоге? - программирование
Подтвердить что ты не робот

Установить заголовок Content-Disposition в вложение только на файлы в определенном каталоге?

У меня есть это правило в моем файле htaccess, чтобы заставить связанные файлы загружаться, а не открывать в браузере:

<FilesMatch "\.(gif|jpe?g|png)$">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

Есть ли способ изменить RegExp, поэтому он применяется только к файлам в определенном каталоге?

Спасибо

4b9b3361

Ответ 1

Вероятно, вам нужно будет поместить директивы в файл .htaccess в конкретный каталог.

Ответ 2

Как и @gumbo, поместите файл .htaccess в папку высочайшего уровня, на которую вы хотите повлиять. и эти настройки будут стекаться в подпапки. Вы также можете убедиться, что модуль headers включен, прежде чем использовать его в вашем файле htaccess. Следующая строка генерирует ошибку, если модуль заголовков не включен:

Header set Content-Disposition attachment

вот пример, который заставляет загружать mp3 файлы только в том случае, если включен модуль заголовков:

<IfModule mod_headers.c>
    <FilesMatch "\.(mp3|MP3)$">
        ForceType audio/mpeg
        Header set Content-Disposition "attachment"
        Allow from all
    </FilesMatch>
</IfModule>

Примечание: он не включает модуль, он просто игнорирует что-либо внутри тегов IfModule, если модуль не включен.

Чтобы включить модули apache, вам нужно будет либо отредактировать файл httpd.conf, либо на сервере Wamp, вы можете щелкнуть значок и выбрать "Apache → Apache Modules → headers_module" или убедиться, что он установлен.

Ответ 3

Поместите его в директиву <Location> и/или измените регулярное выражение, чтобы исключить косые черты или, если необходимо.