如何配置apache - 没有mod_expires或mod_headers - 发送到期标头?

时间:2009-05-25 08:28:35

标签: header apache-config

托管我网站的网络服务器未返回最后修改或过期的标头。我想纠正这个问题,以确保我的网页内容可以缓存。

我无法访问apache配置文件,因为该站点托管在我无法控制的共享环境中。但是,我可以通过.htaccess文件进行配置。服务器 - apache 1.3 - 没有配置mod_expires或mod_headers,公司不会为我安装这些。

考虑到这些限制,我有哪些选择?

对不起这里的帖子。我认识到这个问题并不是一个严格的编程问题,而是一个系统管理员问题。当serverfault公开时,我会确保在那里引导这种性质的问题。

1 个答案:

答案 0 :(得分:3)

什么样的内容?如果是静态(HTML,图像,CSS),那么真正唯一的方法是通过前端Web服务器来附加标题。我很惊讶托管公司没有启用mod_headers,虽然他们可能没有为.htaccess启用它。这会花费更多的带宽和CPU(即金钱)来缓存。

如果是动态内容,那么在生成页面时您将拥有控制权。这取决于你的语言;这是PHP的一个例子(它来自PHP手册,并且是一个不好的例子,因为它也应该设置响应代码):

if (!headers_sent()) {
    header('Location: http://www.example.com/');
    exit;
}

哦,关于设置缓存头的一件事:不要将它们设置太长时间,特别是对于CSS和脚本。您可能认为不想更改这些内容,但是当人们在浏览器中仍然拥有旧内容时,您不希望网站损坏。我建议4-8小时范围内的最大缓存设置:适合单个用户的会话,或工作日,但不多。