1

.htaccess を使用してヘッダーを操作する方法と、Google の言葉で言えば、「ブラウザのキャッシュを活用して」ページの読み込み時間を改善する方法を学ぼうとしています。私が実験したコードは次のとおりです。

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\.(js|css)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(html|php)$">
Header set Cache-Control "max-age=14400, public"
</FilesMatch>

何らかの理由で、これにより Web サイト全体で 500 エラーがスローされます。違いが生じる場合に備えて、.htaccess ファイルの非常に早い段階で、特定のサブドメインのパスワードと 301 RewriteEngine リダイレクトの長いリストを必要とする認証ロジックの前に、このコードを挿入しました。件の URL が変更されました。

なぜこれがエラーを引き起こしているのか知っていますか? 多かれ少なかれブログからコードをコピーし、必要に応じて編集しました。500 エラーは、.htaccess ファイルを更新した直後にも発生しません。これは、Apache サーバーのデフォルトの 4 時間のキャッシュ有効期限ヘッダーが経過した後にエラーが発生していることを意味します。

編集 10-17-2012:

このコードの追加と削除を数回試みた結果、簡単ではありますが、ヘッダーが機能することを確認しました。PageSpeed で FireBug を使用すると、max-age 設定がファイルに正しく適用されていることがわかります。それからしばらくすると、前に述べたように、ウェブサイトは常に 500 に変わります。

注目に値するもう 1 つのこと: メイン サイトにロールアウトする前に、パスワードで保護されたテスト サブドメインで新しいヘッダーを実際にテストしようとしています。私が知る限り、何らかの理由で、サブドメインの .htaccess を更新した後 (/public_html/ とは別の独自のフォルダーからも実行されます)、メイン (www) サイトが壊れます。

何か間違ったことをしている可能性や、テスト サブドメインを更新していると思ったときに誤ってメイン サイトにアップロードしてしまった可能性がありますが、メイン サイトのダウンタイムがこれ以上長くなる危険を冒すことを躊躇しています。

4

3 に答える 3

0

500 エラーがキャッシュ コードとは関係なく、サイトのコントロール パネルと関係がある可能性があります。どうやら、ビルトインの .htaccess エディター メニューを誤ってクリックしただけで、私自身の手でコード化されたファイルが編集され、IT 部門が独自のツールで使用するのに適した順序で行がシャッフルされてしまうようです。これは、Cache-Control 行の有無にかかわらず、サイトを壊しています。

もう一度テストしてみます。すべてがうまくいけば、この問題は解決します。

于 2012-10-17T16:53:27.380 に答える
0

これらのエントリをファイルに追加できる構成エントリが http.conf ファイルにあることを確認してください.htaccess。テストする良い方法は、このセクションを apache 構成に移動して、それでも失敗するかどうかを確認することです。

失敗しない場合は、override all変更しているディレクトリに適用していることを確認してください。

于 2012-10-16T16:20:57.263 に答える