web-dev-qa-db-ja.com

GooglePageSpeedが推奨するHTTPキャッシュの有効期限を設定する

GoogleのPageSpeedを使用して自分のWebサイトでテストを実行しましたが、「ブラウザのキャッシュを活用する」ことをお勧めし、次のリソースを提供しました。

http://code.google.com/speed/page-speed/docs/caching.html#LeverageBrowserCaching

このリソースでは、httpヘッダーの有効期限を実際に変更する方法については説明していません。 .htaccessでこれを行いますか?キャッシュをできるだけ長く設定したいと思います(Googleの最大1年のポリシーに違反することはありません)。

(カスタムphp主導のソーシャルネットワーキングコミュニティの)推奨設定に関するアドバイスをいただければ幸いです。

25
pws5068

ルートの.htaccess:

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType image/x-icon "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
  ExpiresByType text/html "access plus 600 seconds"
  ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>

そして、フォローします:

<IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\\.(css)$">
Header set Cache-Control "max-age=2692000, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</FilesMatch>
<FilesMatch "\\.(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
Header unset ETag
Header unset Last-Modified
</IfModule>

これは、私が管理するすべてのプロパティで使用するのとまったく同じコードであり、私(およびPageSpeed)に最も満足のいく結果を提供します。特定のルールについて議論する人もいるかもしれません。そのため、meを満たすと言いましたが、確かにPageSpeedを満たしています。

29
methode

Htaccessとphpの両方で実行できます。通常、動的なデータベース駆動型コンテンツであるため、実際のhtmlを強制的にキャッシュすることは望ましくありません(必要に応じてheader() php関数を使用して実行できます)。キャッシュしたいのは、外部のcssとjavascript、および画像ファイルです。

.htaccessソリューションについてはこちらをご覧ください: http://www.askapache.com/htaccess/Apache-speed-expires.html

1
Mark