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

Приоритет .htaccess для управления кешем

У меня есть .htaccess в корне моего документа со следующим:

    ExpiresActive On
    ExpiresDefault A0
    <FilesMatch "\\.(gif|jpe?g|png)$">
        ExpiresDefault A86400
    </FilesMatch>

Однако для конкретного подкаталога / images / avatar я хочу, чтобы возраст был только 300 секунд. Таким образом, я создал еще один .htaccess в / images / avatar со следующим:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault A300
</IfModule>

С указанными выше настройками я не могу установить время истечения 300 секунд для файлов в / images / avatar. Однако, если я удалю .htaccess в корне, будет применяться правило 300 секунд.

Любая помощь? Спасибо

Я подозреваю, что проблема заключается в том, что параметры FilesMatch применяются после параметров каталога. Попробуйте указать директиву FilesMatch в каталоге вашего аватара, например:

<FilesMatch ".">
    ExpiresActive On
    ExpiresDefault A300
</FilesMatch>

Видеть http://httpd.apache.org/docs/2.0/sections.html в котором объясняется, что сначала применяются параметры каталога, а затем применяются параметры FilesMatch. В вашем случае у вас были параметры каталога, устанавливающие ExpiresDefault на A300, а затем родительский параметр FilesMatch был применен к любым файлам соответствия в подкаталоге (помните, что параметры настройки для каталога влияют на все подкаталоги).