0

古いサイトを新しいサーバーに移動したところ、クライアントが非常に奇妙な動作を発見しました。

最後に非常に近い、私はこのコードを持っています:

if (!$this->cache) {
    header('Expires: '.gmdate('d M Y H:i:s', 946684800).' GMT');
    header('Cache-Control: no-cache');
    header('Pragma: no-cache');
}

奇妙なことは、Cache-Control 行が機能しないことです。パケット スニッフィング後、次のように表示されます。

Expires: 01 Jan 2000 00:00:00 GMT
Cache-Control: max-age=300, public
Pragma: no-cache

ヘッダーの順序は私が設定したとおりですが、Cache-Control はまったく異なります。キャッシュ制御についての言及についてコードをgrepしましたが、その言及だけがあり、別のファイルに強制的にキャッシュするように設計された別のものがありますが、それは私が見ているものとは異なる行であるため、原因ではありません。

Cache-Control が変更される理由を知っている人はいますか?

4

2 に答える 2

0

セッションを使用している場合、PHP がセッションを上書きしている可能性があります。session_cache_limiter()説明書を見てみましょう。

または、 を呼び出した後にこれらのヘッダーを設定してみてくださいsession_start()

(編集:「終わりに非常に近い」について少し見逃したので、これはあなたの問題ではないかもしれません。)

于 2010-09-09T05:53:55.183 に答える
0

Squid を実行していると思います。その構成を確認する必要があります。

header_replace Cache-Control max-age=300, public

于 2012-06-30T18:18:26.800 に答える