使用mod标头过期标头和缓存控制

时间:2014-12-26 04:27:11

标签: apache .htaccess

我在htaccess文件中添加了expire标头,所以是否还需要为缓存控制添加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>

1 个答案:

答案 0 :(得分:2)

让我们阅读the documentation for mod_expires

  

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

因此答案是:这取决于。

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

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