【问题标题】:Apache: How to add Expires headers to files without mod_expires installedApache:如何在未安装 mod_expires 的情况下将 Expires 标头添加到文件中
【发布时间】:2010-11-24 13:57:01
【问题描述】:

我在运行 Apache 的共享主机上。显然 mod_expires 没有安装。 是否有另一种方法可以在该环境中将过期标头添加到 css 文件、图像等?

【问题讨论】:

  • 你想模拟什么指令?

标签: php apache mod-expires


【解决方案1】:

在您的.htaccess(如果这是一个选项)中,您可以使用<FilesMatch> blockHeader directives。不过,这需要mod_headers,而且我很确定您不能指定“滚动”到期日期(即“一年后”)。因此,您需要编辑此设置,例如每年一次1

另外,你看到this question了吗?


1) 显然,您应该避免将 Expires 设置为未来一年以上:“不要将其 [Expires 标头] 设置为超过一个未来一年,因为这违反了 RFC 指南。”(来源:Optimize caching

【讨论】:

  • 那行得通。非常感谢。我不介意每年编辑一次。
  • @Hedge 太好了,毕竟这很容易解决。
【解决方案2】:

您可以使用 PHP 嵌入过期标头,
效率不如 apache mod_expires,
但至少它仍然可以为准备好的缓存服务

只有在用户拥有 已经访问过您的网站。它对 HTTP 请求的数量没有影响 用户第一次访问您的网站并且浏览器的缓存是空的。 因此,这种性能改进的影响取决于用户的频率 使用准备好的缓存访问您的页面。 (一个“primed cache”已经包含了所有 页面中的组件。)我们在 Yahoo!并找到了号码 使用准备好的缓存的页面浏览量为 75-85%。通过使用遥远的未来 Expires 标头,您增加浏览器缓存的组件数量 并在后续页面视图中重新使用,而无需在 用户的 Internet 连接。

来源:http://developer.yahoo.com/performance/rules.html#expires

【讨论】:

    【解决方案3】:

    只需使用header()自己发送Header

    header("Expires: Thu, 01 Dec 1994 16:00:00 GMT", true);
    

    编辑: 没看到,图片,...也被提及。这仅适用于 php 文件或您通过 php 传递的任何内容,这在大多数情况下并不是一个好主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 2012-12-23
      相关资源
      最近更新 更多