通常PHPの送信するHTTPレスポンスヘッダには「Last-Modified」が含まれない。しかし、ナビゲーションなど一部のみをPHPで作っている場合にはこれは不便だ。
Apacheのモジュール版PHPならば「php_flag last_modified on
」を.htaccessなどに書けばスクリプトファイルの日付を送信してくれる(PHP4.3.4で確認)。
ただし、これだけだと「If-Modified-Since」には対応してくれない。モジュール版PHPでこれに対応するには『モジュール版PHPで「If-Modified-Since」に対応する』を参照のこと。
スクリプトが複数のファイルで成り立っていてリクエストされたファイルの日付のみでは最終更新日を判断できない場合は自力で「Last-Modified」ヘッダを送信することになる。$time_newest
を構成ファイルの内最も新しい物のUNIXタイムスタンプだとすると、
header( "Last-Modified: " . gmdate( "D, d M Y H:i:s", $time_newest ) . " GMT" );
を本文を書き出す前に書いておけば「Last-Modified」ヘッダを送信できる。HTTP/1.1ではタイムゾーンはGMTで固定なのでgmdate()
で日付を生成しているのに注意。