PHP的缓存控制和过期标头
发布时间:2020-12-13 13:40:37 所属栏目:PHP教程 来源:网络整理
导读:我正在设置我的标题 $offset = 60 * 15;header("Expires: " . gmdate("D,d M Y H:i:s",time() + $offset) . " GMT");header("Cache-Control: max-age=$offset,must-revalidate"); 但是在运行FireBug时,它会给我以下标题信息 HTTP/1.1 200 OKDate: Mon,25 Jul
我正在设置我的标题
$offset = 60 * 15; header("Expires: " . gmdate("D,d M Y H: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 M Y H: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,time() + (60*60*24*45)) . ' GMT'); // rest of the code ?> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |