Установить заголовок Content-Disposition для прикрепления только к файлам в определенном каталоге? - PullRequest
15 голосов
/ 20 октября 2010

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

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

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

Спасибо

Ответы [ 3 ]

12 голосов
/ 20 октября 2010

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

10 голосов
/ 29 января 2013

Как сказал @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» или убедиться, что он установлен. 1012 *

2 голосов
/ 20 октября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...