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

mod_expires не устанавливает срок действия для изображений (png, jpeg, gif)

Я использую эту конфигурацию ниже в своем apache2.conf

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/gif "access plus 6 month"
  ExpiresByType image/jpg "access plus 6 month"
  ExpiresByType image/jpeg "access plus 6 month"
  ExpiresByType text/javascript "access plus 6 month"
  ExpiresByType text/css "access plus 6 month"
  ExpiresDefault "access plus 6 month"

</IfModule>

Он работает для css и js

curl -I example.com/assests/css/global.css

 Expires: Wed, 14 Jan 2015 09:28:17 GMT

но когда я скручиваю любой файл изображения

curl -I example.com/assets/images/banner-16-water-purifier.jpg 

Expires: Sun, 17 Aug 2014 09:29:10 GMT

Как видите, для jped он не работает. То же самое относится к каждому изображению (jpeg / png / gif)

Ваша конфигурация выглядит правильной и тестируется на Apache 2.2.22. Проверьте, есть ли у вас какие-либо директивы mod_expires (ExpiresByType или ExpiresDefault) в другом месте, которые переопределяют apache.conf.

Начните с любых файлов .htaccess в пути к изображениям, включая корневую веб-папку, / assets / и / assets / images /. Если вы не отключили использование .htaccess в этих папках, директивы в .htaccess переопределят конфигурацию, установленную где-либо еще.

Затем проверьте файл вашего виртуального хоста в / apache2 / sites-available /, а затем любые другие файлы конфигурации, включенные apache2.conf, такие как /apache2/httpd.conf, /apache2/mods-available/expires.conf (если он существует ) и любые файлы в /apache2/conf.d/.

Я столкнулся с чем-то похожим при добавлении директив mod_expire в конфигурацию виртуального хоста. Мне было интересно, почему он все еще показывает 30-дневный срок действия, когда я установил его на что-то другое, но затем заметил, что программное обеспечение для кеширования на сайте добавило ExpiresByType и ExpiresDefault в файл .htaccess.