我的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 日期