我的PHP代码:

$expires_date = date('D, j F Y H:i:s', strtotime('now + 10 years')) . ' GMT';            
header("Expires: $expires_date"); 
header('Content-type: text/javascript'); 
 
echo 'hello world'; 

当我检查响应头时,我看到:
Expires:Thu, 01 Jan 1970 00:00:00 GMT
我究竟做错了什么?

更新:

只是在试验,但似乎我什至无法通过 header_remove('Expires'); 取消设置过期.我仍然看到 1970 年的日期。

更新:

我的响应头:
Cache-Control:private 
Connection:Keep-Alive 
Content-Encoding:gzip 
Content-Length:74 
Content-Type:text/javascript 
Date:Wed, 17 Oct 2012 22:40:45 GMT 
Expires:Thu, 01 Jan 1970 00:00:00 GMT 
Keep-Alive:timeout=5, max=98 
Server:Apache/2.2.21 (Win32) PHP/5.3.9 
Vary:Accept-Encoding 
X-Powered-By:PHP/5.3.9 

请您参考如下方法:

查看您的 htaccess 文件:

<FilesMatch "\.(htm|html|php)$"> 
        Header set Expires "Thu, 01 Jan 1970 00:00:00 GMT" 
 
        # TODO: Google.com's setting are the following 
        # Expires -1 
        # Cache-Control private, max-age=0 
</FilesMatch> 

它看起来像你的 FilesMatch .php正在覆盖 .htaccess Content-Type:text/javascript规则和 PHP 过期 header ,因为脚本是 .php 文件。

注释掉这个标题在你的 .htaccess 中过期,看看 PHP 标题 +10 年过期是否仍然给出 1/1/1970 日期


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!