我知道如何在PHP中设置一个基本的expires HTTP响应头,如下所示......
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
但是,我想让它变得更加动态,因为我希望使用PHP在用户访问内容之前8小时指定到期时间。有人可以帮助我实现这个目标吗?
提前致谢!
答案 0 :(得分:1)
使用strtotime在以后制作时间戳,并gmdate将其格式化为GMT时区中的字符串。
define('EXPIRE_FORMAT', 'D, d M Y H:i:s T');
$expires = gmdate(EXPIRE_FORMAT, strtotime('+8 hours'));
header("Expires: $expires");
答案 1 :(得分:1)
您可以使用Cache-Control’s max-age来表示相对于响应时间的秒数:
实体的到期时间可以由原始服务器使用Expires头指定(参见第14.21节)。或者,可以在响应中使用max-age指令指定它。当缓存响应中存在max-age cache-control指令时,如果当前年龄大于新资源请求时给出的年龄值(以秒为单位),则响应过时。
一个例子:
header('Cache-Control: max-age=28800');
请注意,如果 Expires 和 Cache-Control 的 max-age 都存在, max-age 优先于 Expires :
如果响应同时包含Expires标头和max-age指令,则max-age指令会覆盖Expires标头,即使Expires标头限制性更强。