Я использую это ниже конфигурации в моем 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 файл.