2

私の Web サイトをホストしている Web サーバーが、最終変更ヘッダーまたは有効期限ヘッダーを返しません。Web コンテンツが確実にキャッシュ可能になるように、これを修正したいと思います。

サイトは私が制御できない共有環境でホストされているため、Apache 構成ファイルにアクセスできません。ただし、.htaccess ファイルを使用して構成を行うことはできます。サーバー - Apache 1.3 - は mod_expires または mod_headers で構成されておらず、会社はこれらをインストールしません。

これらの制限を念頭に置いて、どのような選択肢がありますか?

こちらこそ投稿失礼します。この質問は厳密にはプログラミングの質問ではなく、システム管理者の質問であることを認識しています。serverfault が公開されたら、この性質の質問をそこに向けるようにします。

4

1 に答える 1

3

どんな内容?静的 (HTML、画像、CSS) の場合、実際にヘッダーをアタッチする唯一の方法は、フロントエンド Web サーバーを経由することです。ホスティング会社が mod_headers を有効にしていないことに驚いていますが、.htaccess では有効にしていない可能性があります。キャッシュしないと、より多くの帯域幅と CPU (つまり、お金) が必要になります。

動的コンテンツの場合は、ページを生成するときに制御できます。これは言語によって異なります。これは PHP の例です (これは PHP マニュアルからのものであり、応答コードも設定する必要があるため、悪い例です)。

if (!headers_sent()) {
    header('Location: http://www.example.com/');
    exit;
}

ああ、キャッシュ ヘッダーの設定に関する 1 つのこと: 特に CSS とスクリプトの場合は、ヘッダーを長時間設定しないでください。これらを変更したいとは思わないかもしれませんが、ブラウザに古いコンテンツが残っている間、壊れたサイトは望ましくありません。4 ~ 8 時間の範囲の最大キャッシュ設定をお勧めします。1 人のユーザーのセッションまたは 1 日の作業には適していますが、それ以上ではありません。

于 2009-05-25T10:53:02.650 に答える