2012-12-03 34 views
2

我想在Apache 2.2上设置缓存控制属性,以便客户端连接不会'缓存任何东西。我在httpd.conf文件中添加了各种Header属性,但是这些属性不会覆盖默认的max-age和expires标题。这些都是在httpd.conf我有值的属性标题:Apache缓存控制最大年龄不能被覆盖

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 

所以,Cache-Control头仍然是发送 “最大年龄= 86400”,并附加其余的属性。我怎样才能完全覆盖这个值?我也尝试使用指定mod_expires模块,这是httpd.conf中,我做编辑,但它似乎并没有做任何事情:

<IfModule mod_expires> 
    ExpiresActive On 
    ExpiresDefault 0 
</IfModule> 

因此,谁能在那里告诉我如何完全重写Apache的缓存控制并为每个请求过期头?我们在Windows上运行Apache 2.2以用于闪存媒体流媒体服务器。我想覆盖一些东西,因为服务器根据连接到它的客户端发送了很多深奥的格式。

在此先感谢。

回答

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" 
+0

我想这一点,也没有工作,它只是附加就像我上面贴的结果。从理论上讲,如果我没有设定新的价值,那么不应该有任何标题对吗? –

+0

@PaysonWelch尝试我的更新。啊,你已经使用了...也许问题是你使用两个 – rekire

相关问题