以下三个.htaccess规则之间的区别以及何时使用每个规则,有什么特殊的用例比另一个更喜欢?
Header set Cache-Control "max-age=290304000"
Header set Expires "Thu, 15 Apr 2020 20:00:00 GMT"
ExpiresDefault "access plus 10 years"
最佳答案
Header
是mod_headers的指令,允许修改HTTP header 字段。在这种情况下,Header set
有效地设置了提到的头字段Cache-Control和Expires,因此将覆盖已经存在的头字段。
第一条指令将头字段Cache-Control的值设置为max-age=290304000
,该值将新鲜度生存期描述为相对于响应时间为290304000秒。
与此相反,第二个指令将 header 字段Expires设置为Thu, 15 Apr 2020 20:00:00 GMT
值,该值用绝对时间值描述新鲜度生命周期。
都是Cache-Control’s max-age value and Expires expiration time stamp can be transformed to the other:
但是,如果两者都存在,Cache-Control’s max-age is preferred over Expires:
代替手动设置这些HTTP缓存控制 header 字段,mod_expires ExpiresDefault
directive允许轻松设置HTTP缓存。可以使用相对于响应时间(即access
/now
)或相对于所请求文件的修改时间(即modification
)的绝对值或相对值来描述保鲜期。它同时使用了Cache-Control和Expires。
在这种情况下,第三个指令将默认的新鲜度生存期设置为自响应之日起10年。
我将使用mod_expires进行HTTP缓存控制,而不是使用Header
手动进行。它更加方便,允许相对和绝对刷新时间,并同时使用Cache-Control和Expires。