私は、Apache confファイルの準備が不十分であるため、数年先のWebサイトURLをキャッシュするようにユーザーに指示したWebサイトを持っています。その結果、人がサイトにアクセスするとき、多くの場合、ページを要求することさえ試みません。ブラウザは、キャッシュからHTMLをロードするだけです。
このWebサイトはメジャーアップデートが行われようとしているので、ユーザーが見られるようにしたいと思います。ユーザーに実際にWebページを再要求させる方法はありますか?一部のユーザーは、F5を押していない限り、古いWebページが数年間表示されることを恐れています。
異なるURLを使用します。 Webサイトへのメインエントリポイント(メインインデックスファイルなど)がキャッシュされている場合、問題が発生しています...別のドメイン名を登録する必要がありますか?
最初にこれを達成するためのいくつかのオプションがあります。セクションでメタタグを追加します。
<meta http-equiv="pragma" content="no-cache" />
基本的に、ブラウザはページをキャッシュしません。
別のオプションは、セッションを設定することです。これにより、ブラウザが移動するたびに新しいセッションが強制され、ブラウザがキャッシュではなくサーバーからページを取得するようになります。
<?php
session_start();
$_SESSION = array();
session_destroy();
?>
これを数日間ウェブサイトに追加してから削除できます。それがうまくいくかどうかはわかりませんが、おそらくあなたはそれが便利だと思うでしょう
「メジャーアップデート」が数週間(2または3週間)である場合は、Apache confを再構成するだけで十分です(htmlの将来的なものはなく、ほとんど変更されないアセットとコンテンツのみ) )。 Firefoxのキャッシュはデフォルトで最大50MBです。画像もキャッシュされ、最新のWebサイトには多くのコンテンツがあるため、それほど多くありません。
完全ではありません-しかし、それは私がすることです-URLを変更したくない、または変更できない場合;)
これを行う方法はないと思います。彼らがあなたのサーバーに決して連絡しないなら、あなたはそれについて本当に何もすることができません。
何年も遅れていますが、それは将来の誰かを助けるかもしれません:何年も未来にキャッシュされていない任意のjavascriptファイルを持っている場合(つまり、実行する方法がある場合)キャッシュされたサイトの新しいjs)、キャッシュをプログラムでクリアするjsを追加します。設定が修正され、更新が完了したら、キャッシュクリアリングjsを削除します。
すべてのリソースのURLを変更する
この質問は非常に古いことを理解していますが、実行可能な答えがあります。
もちろん、一般的なキャッシュ(長期的なキャッシュではない)を避けるために、新しいURLを強制することができます...
つまり.
ただし、このようなシナリオ(以前は長いキャッシュ用に編集されたApache .conf)では、SEOの目的でドメインを変更できないため、SEOへの影響を最小限に抑える「粗悪なハック」を使用できます。
インデックスページ(index.php)を新しいページ(index_new.php)にコピーし、httpd.conf(または同等のもの)を編集して、DirectoryIndexが新しいページになるようにします。その後、古いページを削除または移動するだけで、理論的には常に新しいページにリダイレクトされるはずです。
つまりDebian/Ubuntuの場合:
cd /var/www
cp index.php index_new.php
Sudo vim /etc/Apache2/sites-enabled/000-default
<Directory /var/www/>
...
DirectoryIndex index_new.php
</Directory>
mv index.php index_old.php
Sudo service Apache2 restart
そしてそこに行きます。
次のように、HTMLファイル内で必要なすべての変更を行うことができます。
<meta http-equiv="cache-control" content="no-cache, must-revalidate, post-check=0, pre-check=0" />
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
ただし、Apacheにmod_expires.cモジュールを使用するように明示的に指示し、httpd.confファイルにいくつかのディレクティブを追加することもできます。
<IfModule mod_expires.c>
# Turn on the module.
ExpiresActive on
# Set the default expiry times.
ExpiresByType text/html "modification plus 5 seconds"
ExpiresByType text/javascript "modification plus 5 seconds"
ExpiresDefault "access plus 2 days"
</IfModule>
この方法では、httpヘッダーのcache-controlを追加し、応答に期限切れになります。これにより、ブラウザは、Originでファイルが変更されてから5秒後、これらの種類のファイルに対して、他のすべての種類のファイル用のブラウザ。
お役に立てれば。