Конфигурация PHP переопределяет заголовки кэширования .htaccess

Я пытался настроить кеширование для статических файлов моего сайта, таких как jpg, png, css и т. д., но пока безуспешно, я понял, что конфигурация PHP берет на себя .htaccess is config.

Я проверил, что mod_expires.so раскомментирован в моем httpd.conf.

Я пытался следовать в .htaccess, но тщетно.

<IfModule mod_expires.c>
ExpiresActive On
<FilesMatch "\.(jpe?g|png|gif|js|css|ttf|eto|svg|woff|otf)$">
ExpiresDefault "access plus 1 month"
</FilesMatch>
</IfModule>

даже пробовал безуспешно

<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

Затем я обнаружил, что мой php.ini имеет session.cache_limiter = nocache. Я изменил его на session.cache_limiter = public, а мой session.cache_expire=180 после изменения этой конфигурации в php.ini и перезапуска apache я обнаружил, что заголовок ответа для изображений изменился, как показано ниже.

HTTP/1.1 200 OK
Date: Fri, 19 Sep 2014 07:33:58 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.2.10
Expires: Fri, 19 Sep 2014 10:33:58 GMT
Cache-Control: public, max-age=10800
Last-Modified: Mon, 05 Dec 2011 19:08:22 GMT
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

Что я хочу сделать, так это кэшировать изображения и файлы css/js для «доступа плюс 1 месяц».

любое предложение приветствуется.


person Alyas    schedule 19.09.2014    source источник


Ответы (1)


Вы можете использовать директиву ExpiresByType:

ExpiresActive on
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
person anubhava    schedule 19.09.2014
comment
Спасибо за ответ, но я тоже пробовал :( - person Alyas; 19.09.2014
comment
Да, это то, что я упомянул, что кажется, что конфигурация PHP переопределяет директивы htaccess. - person Alyas; 19.09.2014
comment
Конфигурация PHP не может переопределить кэширование text/javascript ИЛИ image/gif. Попробуйте закомментировать свой блок FilesMatch и протестировать в новом браузере. Также у вас есть ExpiresActive on перед этими строками? - person anubhava; 19.09.2014
comment
Не повезло, тот же результат :( - person Alyas; 19.09.2014
comment
Удачи вам в тестировании, так как только у вас есть все ресурсы/файлы, доступные для отладки. Я могу только заверить, что это рабочий код. - person anubhava; 19.09.2014
comment
Спасибо за ответы, я только что понял, что мои коды работают для кэширования в Chrome, но в FF тот же результат - person Alyas; 19.09.2014
comment
На самом деле в FF с плагином Live HTTP Headers срок действия истекает 19 ноября 1981 г., 08:52:00 по Гринвичу. - person Alyas; 19.09.2014