PHP + Apacheでexpiresヘッダーを設定するにはどうすればよいですか?gzip圧縮されたリソースを提供するためにauto_prependを現在使用していますが、HTTPキャッシュを最大化したいです。
これらを設定するにはどうすればよいですか?
これを行うには2つの方法があります。 1つは、PHPコードでヘッダーを指定することです。これは、有効期限をプログラムで調整する場合に便利です。たとえば、Wikiでは、頻繁に編集されないページの有効期限を長く設定できます。
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60))); // 1 hour
2番目の選択肢は、。htaccessファイルを作成するか、httpd構成を変更することです。共有ホスティング環境では、.htaccessファイルの変更は非常に一般的です。これを行うには、サーバーがmod_expires、mod_headers、またはその両方をサポートしているかどうかを知る必要があります。最も簡単な方法は、単純に試行錯誤することですが、一部のApacheサーバーは、/ server-infoページでこの情報を表示できるように構成されています。サーバーにmod_expiresとmod_headersの両方があり、静的リソースに有効期限を設定する場合は、これを.htaccessファイルに入れてみてください。
# Turn on Expires and set default to 0
ExpiresActive On
ExpiresDefault A0
# Set up caching on media files for 1 year (forever?)
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</FilesMatch>
他の組み合わせおよびその他の例については、以下を参照してください。 http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html
このApacheモジュールは役に立つかもしれません: http://httpd.Apache.org/docs/2.0/mod/mod_expires.html
何か試してみましたか?
<?php
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
?>