【问题标题】:Alternative to mod_expires for setting expiration headers?替代 mod_expires 设置过期标头?
【发布时间】:2013-05-04 03:33:47
【问题描述】:

我在 Apache 服务器上使用 php。我无法在我正在处理的服务器上的 .htaccess 中设置过期标头,因为它是共享服务器,并且它们(网络主机)不会在 apache 构建中安装 mod_expires 模块。 我一直使用ExpiresActive On 并在.htaccess 文件中为图像、jsxml 和文本文件设置默认缓存过期时间。

我还有哪些其他选择?

谢谢。

【问题讨论】:

  • 您的主机没有安装 mod_expires 听起来很奇怪,因为它已经与 Apache 捆绑了很长时间。我一定会换主机!!!即使是当今最便宜的共享网络托管服务也安装了mod_expires

标签: php apache .htaccess caching


【解决方案1】:

您可以使用 .htaccess 而无需 mod_expires。

<IfModule mod_headers.c>
  <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
    Header set Expires "Wed, 15 Apr 2020 20:00:00 GMT"
    Header set Cache-Control "public"
  </FilesMatch>
</IfModule>

【讨论】:

  • 或者,使用Header set Cache-Control "max-age=seconds"。因为您不应将到期日期设置为超过一天。 max-age 更灵活,不需要定期更新。访问时间的秒数。
  • 那应该是“一年”,抱歉。来源是 W3C 的缓存最佳实践。
【解决方案2】:

有人可能会想出一个没有该模块的 Apache 特定解决方案,但作为最后的手段,如果没有其他方法,您可以通过 PHP 路由所有流量并在那里输出标头。但这意味着通过 PHP 解释器发送所有资源,而且成本非常高。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 2010-10-28
    • 2011-07-06
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多