无法覆盖Apache缓存控制max-age

时间:2012-12-03 18:18:44

标签: flash apache apache2 streaming cache-control

我正在尝试在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,因为服务器根据连接到它的客户端发送许多深奥的格式。

提前致谢。

1 个答案:

答案 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"