ExpiresByType不工作,但<filesmatch> IS在.htaccess?</filesmatch>

时间:2013-08-04 16:02:12

标签: .htaccess caching mod-expires

我一直对此感到困惑,希望有人能够解决这个问题。

在我的htaccess文件中,我有:

<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType text/html  "access plus 4 hours"
</IfModule>

但是,当我检查标题时,它似乎无法正常工作 我得到“no-store,no-cache,must-revalidate,post-check = 0,pre-check = 0”

但是如果我使用这个代码:

# 4 HOURS
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=14400, must-revalidate"
</FilesMatch>

它会拿起缓存。 max-age = 14400,必须重新验证

我错过了什么吗?一个用于服务器,一个用于浏览器?我的意思是,如果它们都是相同的话,我宁愿使用第一个,因为它们都是相同的。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不知道您是否已经有解决方案但是您确定在您的服务器上启用了mod_expire吗?在ubuntu上sudo apache2ctl -M

您还可以尝试注释<IfModule mod_expires.c></IfModule>并重新启动apache。如果未启用mod_expires,它将崩溃。

启用mod_expire:

  

sudo a2enmod到期

mod_expires将创建Expire标头,并且只应修改max-age=14400标头的Cache-Control部分。对于must-revalidate部分,您必须使用Header