GoogleのPageSpeedを使用して自分のWebサイトでテストを実行しましたが、「ブラウザのキャッシュを活用する」ことをお勧めし、次のリソースを提供しました。
http://code.google.com/speed/page-speed/docs/caching.html#LeverageBrowserCaching
このリソースでは、httpヘッダーの有効期限を実際に変更する方法については説明していません。 .htaccessでこれを行いますか?キャッシュをできるだけ長く設定したいと思います(Googleの最大1年のポリシーに違反することはありません)。
(カスタムphp主導のソーシャルネットワーキングコミュニティの)推奨設定に関するアドバイスをいただければ幸いです。
ルートの.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を満たしています。
Htaccessとphpの両方で実行できます。通常、動的なデータベース駆動型コンテンツであるため、実際のhtmlを強制的にキャッシュすることは望ましくありません(必要に応じてheader()
php関数を使用して実行できます)。キャッシュしたいのは、外部のcssとjavascript、および画像ファイルです。
.htaccessソリューションについてはこちらをご覧ください: http://www.askapache.com/htaccess/Apache-speed-expires.html