我正在尝试在Apache 2.2上设置cache-control属性,以便客户端连接不会缓存任何内容。我在httpd.conf文件中添加了各种Header属性,但是这些属性不会覆盖默认的max-age和expires标头。这些是httpd.conf中Header属性的值:
Header set Expires "Thu, 01 Dec 2003 16:00:00 GMT"
Header set Cache-Control "no-store, no-cache, must-revalidate"
Header set Pragma "no-cache"
生成的标题是:
HTTP/1.1 200 OK
Date: Mon, 03 Dec 2012 18:06:35 GMT
Server: Apache/2.2.21 (Win32) DAV/2
Cache-Control: max-age=86400, no-store, no-cache, must-revalidate
Expires: Tue, 04 Dec 2012 18:06:36 GMT, Thu, 01 Dec 2003 16:00:00 GMT
Content-Length: 548113
Last-Modified: Fri, 14 Sep 2012 22:08:04 GMT
Vary: Accept-Encoding
Pragma: no-cache
Keep-Alive: timeout=15, max=98
Connection: Keep-Alive
Content-Type: video/f4f
因此缓存控制标头仍然发送“max-age = 86400”,并附加其余属性。我怎样才能完全覆盖这个值?我也尝试使用mod_expires模块,这是我创建的httpd.conf的编辑,但它似乎没有做任何事情:
<IfModule mod_expires>
ExpiresActive On
ExpiresDefault 0
</IfModule>
那么有人可以告诉我如何完全覆盖Apache的缓存控制并为每个请求过期标头?我们在Windows上运行Apache 2.2用于闪存媒体流服务器。我想覆盖evertything,因为服务器根据连接到它的客户端发送许多深奥的格式。
提前致谢。
答案 0 :(得分:1)
在这里试试这个:
Header unset Expires
Header set Expires "Thu, 01 Dec 2003 16:00:00 GMT"
我在某地读过,最好先删除旧标题。因此unset
规则会这样做。
如果这不起作用,请尝试mod expires:
ExpiresActive On
ExpiresByType video/f4f "access minus 9 years"