<-
Apache > HTTP 服务器 > 文档 > 版本 2.4 > 模块

Apache 模块 mod_expires

可用语言:  en  |  fr  |  ja  |  ko 

描述根据用户指定的标准生成 ExpiresCache-Control HTTP 头
状态扩展
模块标识符expires_module
源文件mod_expires.c

摘要

此模块控制在服务器响应中设置 Expires HTTP 头和 Cache-Control HTTP 头的 max-age 指令。过期日期可以设置为相对于源文件上次修改的时间,也可以设置为相对于客户端访问的时间。

这些 HTTP 头是关于文档有效性和持久性的指令。如果被缓存,文档可以在此时间过去之前从缓存中获取,而不是从源获取。在此之后,缓存副本被认为是“过期”和无效的,必须从源获取新的副本。

要修改除 max-age 之外的 Cache-Control 指令(参见 RFC 2616 第 14.9 节),可以使用 Header 指令。

Expires 头已经是服务器生成的响应的一部分时,例如由 CGI 脚本生成或从源服务器代理时,此模块不会更改或添加 ExpiresCache-Control 头。

Support Apache!

主题

指令

错误修复清单

另请参阅

top

备用间隔语法

ExpiresDefaultExpiresByType 指令也可以以更易读的语法定义,形式为

ExpiresDefault "base  [plus num type] [num type] ..."
ExpiresByType type/encoding "base  [plus num type] [num type] ..."

其中 base 是以下之一

plus 关键字是可选的。 num 应该是一个整数(可被 atoi() 接受),而 type 是以下之一

例如,以下任何指令都可以用来默认情况下使文档在访问后 1 个月过期

ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"

可以通过添加多个 'num type' 子句来微调过期时间

ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "modification plus 5 hours 3 minutes"

请注意,如果您使用基于修改日期的设置,则不会将 Expires 头添加到不来自磁盘文件的內容中。这是因为此类內容没有修改时间。

top

ExpiresActive 指令

描述启用生成 Expires
语法ExpiresActive On|Off
默认ExpiresActive Off
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖索引
状态扩展
模块mod_expires

此指令启用或禁用为相关文档区域生成 ExpiresCache-Control 头。(也就是说,如果在 .htaccess 文件中找到,它只适用于从该目录生成的文档。)如果设置为 Off,则不会为该区域中的任何文档生成头(除非在较低级别被覆盖,例如 .htaccess 文件覆盖服务器配置文件)。如果设置为 On,则会根据 ExpiresByTypeExpiresDefault 指令(q.v.)定义的标准将头添加到已提供的文档中。

请注意,此指令不能保证会生成 ExpiresCache-Control 头。如果标准不满足,则不会发送任何头,效果就好像没有指定此指令一样。

top

ExpiresByType 指令

描述通过 MIME 类型配置的 Expires 头的值
语法ExpiresByType MIME-type <code>seconds
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖索引
状态扩展
模块mod_expires

此指令定义为指定类型(例如text/html)的文档生成的 Expires 头的值和 Cache-Control 头的 max-age 指令。第二个参数设置将添加到基本时间以构建过期日期的秒数。Cache-Control: max-age 是通过从过期日期减去请求时间并以秒为单位表示结果来计算的。

基本时间是文件的最后修改时间,或客户端访问文档的时间。<code> 字段指定了应该使用哪个;M 表示应使用文件的最后修改时间作为基本时间,而 A 表示应使用客户端的访问时间。

效果上的差异很细微。如果使用 M,则所有缓存中所有文档的当前副本将在同一时间过期,这对于始终在同一 URL 找到的每周通知等内容来说可能很好。如果使用 A,则每个客户端的过期日期都不同;这对于不太常更改的图像文件来说可能很好,特别是对于一组所有引用相同图像的相关文档(,图像将在相对较短的时间内重复访问)。

示例

# enable expirations
ExpiresActive On
# expire GIF images after a month in the client's cache
ExpiresByType image/gif A2592000
# HTML documents are good for a week from the
# time they were changed
ExpiresByType text/html M604800

请注意,此指令只有在指定了 ExpiresActive On 时才有效。它仅针对指定的 MIME 类型覆盖 ExpiresDefault 指令设置的任何过期日期。

您还可以使用本文档前面描述的 备用语法 来指定过期时间计算。

top

ExpiresDefault 指令

描述计算过期时间的默认算法
语法ExpiresDefault <code>seconds
上下文服务器配置、虚拟主机、目录、.htaccess
覆盖索引
状态扩展
模块mod_expires

此指令设置受影响区域中所有文档的过期时间计算的默认算法。它可以通过 ExpiresByType 指令在逐类型基础上被覆盖。有关参数语法的详细信息,请参见该指令的描述,以及 备用语法 描述。

可用语言:  en  |  fr  |  ja  |  ko 

top

评论

通知
这不是问答部分。此处放置的评论应指向有关改进文档或服务器的建议,如果这些建议已被实施或被认为无效/与主题无关,则可能会被我们的版主删除。有关如何管理 Apache HTTP Server 的问题应发送到我们的 IRC 频道 #httpd(在 Libera.chat 上),或发送到我们的 邮件列表