0

うーん、簡単な質問です。私のサーバーには、月に1回だけ更新される単純なphpファイルがあります。今、私はブラウザが一定期間まで更新をチェックすることを絶対に望んでいません. これは可能ですか?私のウェブサイトは特にクロムユーザーを対象としています...私はApacheサーバーを持っており、現在PHPでヘッダータグを使用しています:

 header("Cache-Control: max-age=25200");

上記のどれが、更新されたページをまだチェックしていると確信しています。ところで、ブラウザが新しいページをチェックしてはならない理由は、ウェブページが巨大だからです。毎日再ダウンロードされたくない。

4

1 に答える 1

1

あなたが持っているものは悪いスタートではありませんが、次のように少し改善することができます:

header("Cache-Control: max-age=2592000 public");

.htaccess に、expires http ヘッダー レスポンスを追加できます。

<IfModule mod_expires.c>
    Header unset expires
    ExpiresActive On
    Header set Expires "Mon, 5 Aug 2013 20:00:00 GMT"
</IfModule>

有効期限を使用する場合は、アクセスに基づくルールではなく特定の日付を設定することを忘れないでください。これは、動的生成コンテンツでは機能しないためです。これの欠点は、時々更新する必要があることです。

もちろん、リクエストされた時間から 1 か月の時間枠で php ファイルに設定することもできます。そうすれば、.htaccess を更新する必要がなく、常に有効な期間があります。

header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 2592000));

プラグマ キャッシュ ルールを追加できます。多くの最新のクライアントは使用していませんが、多くのモバイル アプリケーションとバリデーターは使用しています。

<FilesMatch "\.(php)$">
    Header set Pragma "cache"
</FilesMatch>

多くのクライアントは etag ヘッダーも考慮しているため、追加することが重要です。私はすべてのプロジェクトで使用しています。.htaccess でもそれを行うことができます。

FileETag All

最後に、サイトの更新頻度がそれほど高くない場合、キャッシュとユーザー エクスペリエンスを向上させる最善の方法は、php で HTML ファイルを生成してクライアントに送信することです。そうすれば、expires ヘッダーも意図したとおりに機能し、Apache または php を介してサーバー側から圧縮を使用できます。

さよなら

于 2012-10-14T06:30:36.180 に答える