0

我对此感到相当困惑,并希望有人能够提供一些启示。

在我的 htaccess 文件中,我有:

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

但是,当我检查标题时,它似乎不起作用。
我得到“无存储,无缓存,必须重新验证,检查后 = 0,预检查 = 0”

但是,如果我使用此代码:

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

它确实拾取了缓存。 max-age=14400,必须重新验证

我错过了什么吗?一个用于服务器,一个用于浏览器?我的意思是,我更喜欢使用第一个,因为如果它们都相同,它会附带样板。

提前致谢!

4

1 回答 1

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

于 2013-10-11T15:11:12.020 回答