2

あるサイトで成功した PHP ファイルをキャッシュしようとしていますが、別の Web サイトでコードを実装すると、キャッシュされません。Firebug で確認したところ、200 OKステータスが表示されました。これは、ページが更新されるたびにサーバーからダウンロードされることを意味します。

これが私のコードです:

$now          = time();
$generatedAt  = gmdate('D, d M Y H:i:s T', $now);
$lastModified = gmdate('D, d M Y 00:00:00 T', $now);
$expiresAt    = gmdate('D, d M Y H:i:s T', strtotime($lastModified) + 8035200);
$maxAge       = strtotime($expiresAt) - strtotime($generatedAt);

header('Last-modified: '.$lastModified);
header('Cache-control: max-age='.$maxAge);

追加情報:

他のサイトからコピーされたもので、304 NOT MODIFIEDキャッシュされていることを意味するステータスを取得しています。

このコードはファイルの先頭にあり、ヘッダーがまだ送信されていないことを意味するエコーや出力はありません。

私の .htaccess ファイルも正しく構成されています。PHP ファイルをキャッシュしないように指定していませんでした。

4

2 に答える 2

0

他のブラウザは試しましたか?Firefox のキャッシングは、控えめに言っても、*の山積みです。また、.htaccess だけではありません。Apache の構成では、スクリプトがあるディレクトリの AllowOverride ディレクティブを調整する必要があります。

また、Wireshark を使用して、ネットワーク上で何が行われるかを観察してみてください。どのヘッダーが送信され、どのヘッダーが実際に受信されるのでしょうか?

于 2012-12-28T09:18:48.593 に答える
-1

Last-modified:このパラメータを修正する必要があると思います。

于 2012-12-28T09:20:13.077 に答える