PHPのページをブラウザにキャッシュさせたくない

このコードをPHPの最初に記述しておけばいいらしいのでメモ。

header( ‘Expires: Sat, 26 Jul 1997 05:00:00 GMT’ );
header( ‘Last-Modified: ‘ . gmdate( ‘D, d M Y H:i:s’ ) . ‘ GMT’ );
header( ‘Cache-Control: no-store, no-cache, must-revalidate’ );
header( ‘Cache-Control: post-check=0, pre-check=0’, false );
header( ‘Pragma: no-cache’ );

 

以前はMetaタグでキャッシュさせないようにしていたんだけど、ChromeとかSafariとかはMetaタグを無視してどんどんキャッシュするらしい。それどころか、HTTPSの通信であってもキャッシュするらしい。なかなか厄介。

今回は、HTTPヘッダ情報としてLast-Modifiedを出力するようにしたためか、これでChromeでもうまく情報が更新されるようになった。

ということで、この記事のタイトルは正しくないんだろう。本当はキャッシュはされるけど、ページの情報が毎回更新される(リロードしたときと同じ感じ)ということかな。

 

コメントを残す