2010年5月18日火曜日

PHPの header()でリダイレクト以外でも HTTPステータスコードを指定する

PHPのheader()を使ってリダイレクトをさせる場合、デフォルトではHTTPステータスコードは302(Found、一時的なURL変更等)になる。
リダイレクト時のHTTPステータスコード301(Moved Permanently、恒久的なURL変更)にしたい場合、header()の第3引数に301を指定する。

header('Location: http://www.example.com/', true, 301);
参考:生の HTTP ヘッダを送信する - PHP 5.3 日本語マニュアル



この第3引数でのHTTPステータスコードの指定だが、リダイレクト以外でも使えるか試してみた。
<?php header('X-Test: TEST', true, 404) ?>

テストです。

結果(HTTPレスポンスヘッダーから一部を抜粋)
HTTP/1.1 404 Not Found
X-Test: TEST

できた。

これを使えば、header()でHTTPステータスコードを指定し、なおかつ他のHTTPレスポンスヘッダーの値をセットしたい場合に、1行で処理できる。
あまりそんな機会はないか。

0 件のコメント:

ブログ アーカイブ

tags