2

我正在尝试在 Apache 2.2 上设置缓存控制属性,以便连接的客户端不会缓存任何内容。我在 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 上为 Flash 媒体流服务器运行 Apache 2.2。我想覆盖evertything,因为服务器根据连接到它的客户端发送许多深奥的格式。

提前致谢。

4

1 回答 1

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" 
于 2012-12-03T18:21:05.537 回答