繁体   English   中英

使用 PHP 和 Apache 设置 HTTP 过期标头

[英]Setup HTTP expires headers using PHP and Apache

如何在 PHP + Apache 中设置过期标头? 我目前正在使用 auto_prepend 来提供 gzip 压缩的资源,但我也想最大化 HTTP 缓存。

我该如何设置这些?

有两种方法可以做到这一点。 第一个是在你的 php 代码中指定标题。 如果您想以编程方式调整到期时间,这很好。 例如,wiki 可以为不经常编辑的页面设置更长的过期时间。

header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60))); // 1 hour

您的第二个选择是创建一个.htaccess文件或修改您的 httpd 配置。 在共享主机环境中,修改 .htaccess 文件是很常见的。 为此,您需要知道您的服务器是否支持mod_expiresmod_headers或两者。 最简单的方法就是反复试验,但某些 Apache 服务器配置为允许您通过 /server-info 页面查看此信息。 如果您的服务器同时具有 mod_expires 和 mod_headers,并且您想在静态资源上设置到期时间,请尝试将其放入您的 .htaccess 文件中:

# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0

# Set up caching on media files for 1 year (forever?)
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</FilesMatch>

有关其他组合和更多示例,请参见: http : //www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html

这个 Apache 模块可能有帮助: http : //httpd.apache.org/docs/2.0/mod/mod_expires.html

你尝试过类似的东西吗?

<?php
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM