【发布时间】:2017-07-26 09:11:20
【问题描述】:
我在我的网站上设置缓存过期日期时遇到问题。这是我在 .htaccess 文件中使用的代码:
<FilesMatch "\.(xml|txt|css|js)$">
Header set Cache-Control "max-age=7200, proxy-revalidate"
</FilesMatch>
我提到的文件类型应该有 2 小时的过期日期,但经过硬刷新后,我发现所有这些文件的过期日期都是一周。例如,我在 Chrome 检查页面中选择 .css 文件并看到以下信息:
接受范围:字节
Cache-Control:max-age=8000, proxy-revalidate
连接:关闭
内容编码:gzip
内容长度:20229
内容类型:文本/css
日期:格林威治标准时间 2017 年 7 月 26 日星期三 09:02:31
ETag:"1c8c1-55513528cb363-gzip"
到期时间:格林威治标准时间 2017 年 8 月 2 日星期三 09:02:31
最后修改时间:格林威治标准时间 2017 年 7 月 24 日星期一 17:12:41
服务器:Apache
变化:接受编码
缓存控制最大年龄有效,但为什么文件的过期日期只有一周后?这是某种服务器缓存还是我做错了什么?
【问题讨论】:
-
您是否启用了 AllowOveride?没有它,Apache 将不会处理 .htaccess。
-
是的,它已启用。此外,据我所知,max-age 正在工作,因为我在文件属性窗口中看到了该值,但不知何故“过期”字段会覆盖缓存过期日期。
-
您是否检查了 /etc/apache 文件夹中的 *.conf 文件,以及目录层次结构中更高的其他 .htaccess 文件是否有可能被覆盖的缓存值?
-
没有其他 .htaccess 文件。我不知道 .conf 文件,必须与服务器提供商核实,很快就会这样做。感谢您的提示。
标签: apache .htaccess browser-cache cache-control