あなたが持っているものは悪いスタートではありませんが、次のように少し改善することができます:
header("Cache-Control: max-age=2592000 public");
.htaccess に、expires http ヘッダー レスポンスを追加できます。
<IfModule mod_expires.c>
Header unset expires
ExpiresActive On
Header set Expires "Mon, 5 Aug 2013 20:00:00 GMT"
</IfModule>
有効期限を使用する場合は、アクセスに基づくルールではなく特定の日付を設定することを忘れないでください。これは、動的生成コンテンツでは機能しないためです。これの欠点は、時々更新する必要があることです。
もちろん、リクエストされた時間から 1 か月の時間枠で php ファイルに設定することもできます。そうすれば、.htaccess を更新する必要がなく、常に有効な期間があります。
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 2592000));
プラグマ キャッシュ ルールを追加できます。多くの最新のクライアントは使用していませんが、多くのモバイル アプリケーションとバリデーターは使用しています。
<FilesMatch "\.(php)$">
Header set Pragma "cache"
</FilesMatch>
多くのクライアントは etag ヘッダーも考慮しているため、追加することが重要です。私はすべてのプロジェクトで使用しています。.htaccess でもそれを行うことができます。
FileETag All
最後に、サイトの更新頻度がそれほど高くない場合、キャッシュとユーザー エクスペリエンスを向上させる最善の方法は、php で HTML ファイルを生成してクライアントに送信することです。そうすれば、expires ヘッダーも意図したとおりに機能し、Apache または php を介してサーバー側から圧縮を使用できます。
さよなら