mod_expires
描述: | 根据 user-specified 标准生成Expires 和Cache-Control HTTP headers |
状态: | 延期 |
模块标识符: | expires_module |
源文件: | mod_expires.c |
摘要
此模块控制服务器响应中Expires
HTTP 标头和Cache-Control
HTTP 标头的max-age
指令的设置。到期 date 可以设置为相对于上次修改源文件的 time 或 client 访问的 time。
这些 HTTP headers 是 client 关于文档有效性和持久性的指令。如果缓存,则可以从缓存而不是从源获取文档,直到此 time 已经过去。之后,缓存副本被视为“已过期”且无效,并且必须从源获取新副本。
要修改max-age
以外的Cache-Control
指令(请参阅RFC 2616 部分 14.9),可以使用头指令。
当Expires
标头已经是服务器生成的响应的一部分时,对于 example,当由 CGI 脚本生成或从源服务器代理时,此模块不会更改或添加Expires
或Cache-Control
标头。
备用间隔语法
ExpiresDefault和ExpiresByType指令也可以用更可读的形式语法定义:
ExpiresDefault "base [plus num type] [num type] ..." ExpiresByType type/encoding "base [plus num type] [num type] ..."
其中 base 是以下之一:
access
now
(相当于'access
')modification
plus
关键字是可选的。 num 应该是 integer value[36],type 是以下之一:
years
months
weeks
days
hours
minutes
seconds
对于 example,默认情况下,以下任何指令都可用于使文档在访问后 1 个月到期:
ExpiresDefault "access plus 1 month" ExpiresDefault "access plus 4 weeks" ExpiresDefault "access plus 30 days"
通过添加几个'num type'子句,expiry time 可以是 fine-tuned:
ExpiresByType text/html "access plus 1 month 15 days 2 hours" ExpiresByType image/gif "modification plus 5 hours 3 minutes"
请注意,如果您使用基于修改 date 的设置,则不会将 Expires 标头添加到不是来自磁盘上文件的内容。这是因为此类内容没有修改 time。
ExpiresActive 指令
描述: | 允许生成Expires headers |
句法: | ExpiresActive On\|Off |
默认: | ExpiresActive Off |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | 索引 |
状态: | 延期 |
模块: | mod_expires |
该指令启用或禁用相关文档领域的Expires
和Cache-Control
headers 的生成。(也就是说,如果在.htaccess
文件中找到,例如,它仅适用于从 directory.)生成的文档。如果设置为Off
,则不会为该域中的任何文档生成 headers(除非在较低的 level 上覆盖,例如覆盖服务器配置文件的.htaccess
文件。如果设置为On
,则_header 将根据ExpiresByType和ExpiresDefault指令(q.v.))定义的条件添加到服务文档中。
请注意,此指令不保证将生成Expires
或Cache-Control
标头。如果不满足条件,则不会发送标头,效果就像是甚至没有指定此指令一样。
ExpiresByType 指令
描述: | 由 MIME 类型配置的Expires 标头的 Value |
句法: | ExpiresByType MIME-type <code>seconds |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | 索引 |
状态: | 延期 |
模块: | mod_expires |
该指令定义Expires
标头的 value 和为指定类型(e.g.,text/html
)的文档生成的Cache-Control
标头的max-age
指令。第二个参数设置将添加到基本 time 以构造到期 date 的秒数。Cache-Control: max-age
是通过从到期 date 中减去请求 time 并以秒为单位表示结果来计算的。
base time 是文件的最后修改 time,或 client 访问文档的 time。应该使用哪个由<code>
字段指定;M
表示文件的最后修改 time 应该用作基本 time,而A
表示应该使用 client 的 access time。
效果的差异是微妙的。如果使用M
,则所有缓存中文档的所有当前副本都将在同一 time 时间到期,这对于始终在同一 URL 上发现的每周通知等情况很有用。如果使用A
,则每个 client 的 date 到期时间不同;这对于不经常更改的图像文件很有用,特别是对于所有引用相同图像的一组相关文档(i.e.,图像将在相对较短的时间内重复访问)。
例:
# 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指令设置的任何到期 date。
您还可以使用替代语法指定到期 time 计算,如本文档前面所述。
ExpiresDefault 指令
描述: | 计算到期 time 的默认算法 |
句法: | ExpiresDefault <code>seconds |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | 索引 |
状态: | 延期 |
模块: | mod_expires |
此指令设置用于计算受影响领域中所有文档的到期 time 的默认算法。可以通过ExpiresByType指令在 type-by-type 基础上覆盖它。有关参数语法的详细信息,请参阅该指令的说明,以及替代语法说明。