2

接続しているクライアントが何もキャッシュしないように、Apache 2.2 で cache-control 属性を設定しようとしています。httpd.conf ファイルにさまざまなヘッダー属性を追加しましたが、これらの属性はデフォルトの max-age および expires ヘッダーをオーバーライドしません。これらは、ヘッダー属性の httpd.conf にある値です。

   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 を実行しています。サーバーは、接続しているクライアントに応じて多くの難解な形式を送信するため、すべてをオーバーライドしたいと考えています。

前もって感謝します。

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 に答える