Я устанавливаю свои заголовки
$offset = 60 * 15; header("Expires: " . gmdate("D, d MYH:i:s", time() + $offset) . " GMT"); header("Cache-Control: max-age=$offset, must-revalidate");
Однако при запуске FireBug он дает мне следующую информацию заголовка
HTTP/1.1 200 OK Date: Mon, 25 Jul 2011 12:15:12 GMT Server: Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i PHP/5.2.9 X-Powered-By: PHP/5.2.9 Expires: Sat, 01 Jan 2000 00:00:01 GMT Cache-Control: post-check=0, pre-check=0, max-age=0 Pragma: no-cache Last-Modified: Mon, 25 Jul 2011 12:15:13 GMT Keep-Alive: timeout=5, max=100 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html
Кто-нибудь знает, почему мои заголовки не узнаются?
Я знаю, что несколько версий назад у Firebug были проблемы, и все запросы были 200 вместо 304. Вот мой код, который я использую для css:
<?php if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { $if_modified_since = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']); } else { $if_modified_since = ''; } $mtime = filemtime($_SERVER['SCRIPT_FILENAME']); $gmdate_mod = gmdate('D, d MYH:i:s', $mtime) . ' GMT'; if ($if_modified_since == $gmdate_mod) { header("HTTP/1.0 304 Not Modified"); exit; } header("Last-Modified: $gmdate_mod"); header('Content-type: text/css'); header('Expires: ' . gmdate('D, d MYH:i:s', time() + (60*60*24*45)) . ' GMT'); // rest of the code ?>
попробуй это
<META HTTP-EQUIV="Pragma" CONTENT="private"> <META HTTP-EQUIV="Cache-Control" CONTENT="private, max-age=5400, pre-check=5400"> <META HTTP-EQUIV="Expires" CONTENT="<?php echo date(DATE_RFC822,strtotime("1 day")); ?>">
или установите заголовки в файле htaccess. Вам также необходимо проверить конфигурационный файл apachi для настройки кеша