Кеширование с использованием .htaccess


Добавьте в файл .htaccess следующие строки:

<IfModule mod_headers.c>
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=604800, public"  #"Thu, 15 Apr 2010 20:00:00 GMT"
Header set Expires "Tue, 3 May 2011 10:06:26 GMT"
</FilesMatch>
</IfModule>

Создайте или добавьте в файл обслуживания вашего сайта, который вызывается раз в сутки по cron-у следующие строки:

$file=$root.'/.htaccess';
$str=@file_get_contents($file);
if (strpos( $str, "Header set Expires" )!==false){ // "Thu, 15 Apr 2010 20:00:00 GMT"
   $str=preg_replace("|Header set Expires .*\n|imsU","Header set Expires \"".date("D, j M Y G:i:s",time()+604800)." GMT\"\n",$str);
   file_put_contents($file,$str);
}

Читайте также про кеширование в PHP


.