我在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>
答案 0 :(得分:2)
让我们阅读the documentation for mod_expires:
此模块控制过期HTTP标头的设置和 服务器中的 Cache-Control HTTP标头的max-age指令 响应。到期日期可以设置为相对于 上次修改源文件的时间,或客户端的时间 访问。
因此答案是:这取决于。
mod_expires设置max-age指令,但不设置告诉客户端缓存是公共还是私有的指令。如果没有定义任何内容,我相信缓存将尽最大努力确定是否要缓存此特定响应。另一方面,无法使用mod_header设置Expires-header。
我认为在您的情况下mod_header规则已过时,但您可能希望在浏览器中检查请求以查看缓存是否按预期发生。