Это то, что я использую для управления заголовками / кэшированием, я не специалист по Apache, поэтому дайте мне знать, есть ли место для улучшений, но я знаю, что это работало хорошо на всех моих сайтах в течение некоторого времени Теперь.
mod_expires
http://httpd.apache.org/docs/2.2/mod/mod_expires.html
Этот модуль управляет настройкой HTTP-заголовка Expires и директивы max-age HTTP-заголовка Cache-Control в ответах сервера. Дата истечения срока действия может быть установлена относительно времени последнего изменения исходного файла или времени доступа клиента.
Эти HTTP-заголовки являются инструкцией для клиента о действительности и сохранности документа. В случае кэширования документ может быть получен из кэша, а не из источника, пока не пройдет это время. После этого копия кэша считается «просроченной» и недействительной, и из источника должна быть получена новая копия.
# BEGIN Expires
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>
# END Expires
mod_headers
http://httpd.apache.org/docs/2.2/mod/mod_headers.html
Этот модуль предоставляет директивы для управления и изменения заголовков HTTP-запросов и ответов. Заголовки могут быть объединены, заменены или удалены.
# BEGIN Caching
<ifModule mod_headers.c>
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\.(css)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
<filesMatch "\.(js)$">
Header set Cache-Control "max-age=216000, private"
</filesMatch>
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=216000, public, must-revalidate"
</filesMatch>
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=1, private, must-revalidate"
</filesMatch>
</ifModule>
# END Caching