(PECL pecl_http >= 0.1.0)
http_redirect — HTTP リダイレクトを発行する
$url
[, array $params
[, bool $session
= false
[, int $status
= 0
]]]] )指定した url にリダイレクトします。
指定した url
は http_build_url() で展開され、
params
の内容は http_build_str() で扱われます。
また、session
が true の場合はセッション ID が付加されます。
HTTP レスポンスコードは、status
に応じたものが設定されます。
リダイレクト定数
のいずれかを使用すると便利です。
どのような場面でどのようなレスポンスコードが返されるのかについては、
» RFC 2616
を参照ください。デフォルトでは、いちばんうまく当てはまるステータスを PHP が決定します。
RFC に準拠するため、クライアントがすぐにリダイレクトしない場合でも "Redirecting to <a>URL</a>." と表示されます。 また、リクエストメソッドは HEAD 以外のものとなります。
INI 設定 http.log.redirect が設定されており、リダイレクトの試みが成功した場合には リダイレクトのログにエントリが書き込まれます。
url
リダイレクトする URL。
params
クエリパラメータの連想配列。
session
セッション情報を付加するかどうか。
status
独自のレスポンスステータスコード。
失敗した場合は FALSE
を返します。成功した場合は 終了 します。
指定したステータスコードとなります。
"終了" の意味については、INI 設定
http.force_exit を参照ください。
例1 http_redirect() の例
<?php
http_redirect("relpath", array("name" => "value"), true, HTTP_REDIRECT_PERM);
?>
上の例の出力は以下となります。
HTTP/1.1 301 Moved Permanently X-Powered-By: PHP/5.2.2 Content-Type: text/html Location: http://www.example.com/curdir/relpath?name=value&PHPSESSID=abc <a href="http://www.example.com/curdir/relpath?name=value&PHPSESSID=abc">http://www.example.com/curdir/relpath?name=value&PHPSESSID=abc</a> にリダイレクトされます。