web-dev-qa-db-ja.com

PHPでブラウザのキャッシュをクリアするにはどうすればよいですか?

PHPでブラウザのキャッシュをクリアするにはどうすればよいですか?

48
ZA.
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-Type: application/xml; charset=utf-8");
51
ZA.

これらのヘッダーを設定することにより、ブラウザーのキャッシュを削除できます。

<?php
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>
34
user1032289

バージョン管理する必要があるため、何らかの変更が発生した場合、ブラウザーは新しいものをキャッチし、ユーザーはブラウザーのキャッシュをクリアする必要はありません。

サブフォルダー(example /css/v1/style.css)またはファイル名で(example: css/style_v1.css)またはWebサイトに別のフォルダーを設定することもできます。例:

www.mywebsite.com/site1

www.mywebsite.com/site2

www.mywebsite.com/site3

.htaccessを使用するか、httpd.confを変更して現在のアプリケーションにリダイレクトします。

one imageまたはpageの場合:

    <?$time = date("H:i:s");?>
    <img src="myfile.jpg?time=<?$time;?>">

キャッシュしたくない場合は、パーツに$ timeを使用できます。そのため、常に新しいイメージがプルされます。バージョン管理は、より良いアプローチを継ぎ合わせます。そうしないと、サーバーが過負荷になる可能性があります。ブラウザのキャッシュは、ユーザーエクスペリエンスだけでなく、サーバーにも適していることを忘れないでください。

1