4

htaccess ファイルにいくつかのキャッシュ制御オプションを設定しようとしています。

現時点では、次のようになっています。

<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf|css|js|html|pdf)$">
Header set Cache-Control "max-age=2592000, public, must-revalidate"
Header unset ETag
FileETag None
</FilesMatch>

ただし、ヘッダーの未設定の最終変更について読んだ(そして追加したかった)ので、次のようになります。

<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico|swf|css|js|html|pdf)$">
Header set Cache-Control "max-age=2592000, public, must-revalidate"
Header unset Last-Modified
Header unset ETag
FileETag None
</FilesMatch>

ただし、これを使用すると (Firebug によると)、キャッシュから何も読み込まれません (最初の手法ではすべてが読み込まれます)。

私は何か間違ったことをしていますか?構文は正しいようです。

A.

4

2 に答える 2

4

構文は正しいですが、使用法が正しくありません。ここにある「スピードのヒント:Last-Modifiedヘッダーの削除」によると:http://www.askapache.com/htaccess/apache-speed-last-modified.html

Last-Modified および ETag ヘッダーを削除すると、If-Modified-Since および If-None-Match 要求とそれらの 304 Not Modified Response が完全に排除されるため、Expires ヘッダーが新しいことを示すまで、ファイルは更新をチェックせずにキャッシュされたままになります。コンテンツが利用可能です!

また:

ETag ヘッダーと Last-Modified ヘッダーの両方を静的ファイル (画像、javascript、css) から削除すると、ブラウザーとキャッシュはファイルのキャッシュ バージョンと実際のバージョンを検証できなくなります。Cache-Control ヘッダーと Expires ヘッダーも含めることで、特定のファイルを一定期間キャッシュするように指定でき、魔法のように (これは私が約束する本当にユニークなトリックです) 検証要求をすべて排除できます!!

詳細については、元のリンクを参照してください。

于 2010-09-18T09:58:18.730 に答える