【问题标题】:expire headers and cache control with mod header使用 mod 标头过期标头和缓存控制
【发布时间】:2015-02-23 12:18:07
【问题描述】:

我已经在我的 htaccess 文件中添加了过期标头,所以还需要添加 mod_header 以进行缓存控制吗? 我的过期标头是:

<IfModule mod_expires.c>

ExpiresActive On 

ExpiresDefault "access plus 1 month"

ExpiresByType image/x-icon "access plus 1 year"

ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"

ExpiresByType text/css "access 1 month"

ExpiresByType application/javascript "access plus 1 year"
</IfModule>

我用于缓存控制的 mod_header 是:

<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=604800, public"
</FilesMatch>


<FilesMatch "\.(js|css|swf)$">
    Header set Cache-Control "max-age=604800, public"
</FilesMatch>

【问题讨论】:

  • 您在上面的代码中真正遇到了什么问题?

标签: apache .htaccess


【解决方案1】:

让我们阅读the documentation for mod_expires

此模块控制 Expires HTTP 标头服务器中 Cache-Control HTTP 标头的 max-age 指令 回应。到期日期可以设置为相对于 源文件最后一次修改的时间,或者到客户端的时间 访问。

因此,答案是:视情况而定。

mod_expires 设置 max-age 指令,但不设置告诉客户端缓存是公共还是私有的指令。当没有定义任何内容时,我相信缓存将尽最大努力确定是否要缓存此特定响应。另一方面,无法使用 mod_header 设置 Expires-header。

我认为在您的情况下 mod_header 规则已过时,但您可能希望在浏览器中检查请求以查看缓存是否按预期发生。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2011-02-05
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 2011-10-28
    相关资源
    最近更新 更多