PHP でリダイレクトする

Subodh Poudel 2023年1月30日
  1. PHP の header() 関数を使用して、URL を HTTP ヘッダーとしてブラウザに送信する
  2. PHP のヘルパーメソッドを使用して、ステータスコード付きの header() 関数を使用して別のページにリダイレクトする
  3. JavaScript の出力バッファリングを使用して別のページにリダイレクトする
PHP でリダイレクトする

header() 関数を使用して、HTTP ヘッダーをブラウザーに送信することにより、PHP でページを別のページにリダイレクトする 1つの方法を示します。このメソッドは、PHP に組み込まれている header() 関数を使用します。この関数は、値が目的のページの URL であるパラメーターとして Location を取ります。

また、URL とステータスコードをパラメーターとして持つヘルパー関数を使用してページを別のページにリダイレクトし、メソッド内で header() 関数を呼び出すメソッドを紹介します。

PHP の echo 内で javascript を使用して window.location を使用してリダイレクトするページの URL を保存し、別のページにリダイレクトする別の方法を示します。

PHP の header() 関数を使用して、URL を HTTP ヘッダーとしてブラウザに送信する

Location をパラメーターとして受け取る header() 関数を使用できます。Location の値は、リダイレクトする必要がある目的のページの URL です。ヘッダー関数は、ファイル内の HTML タグとテキストの上に記述する必要があることに注意してください。header() 関数は、他のデータがブラウザに送信された後は実行されません。実行するコードの最初の行である必要があります。

たとえば、URL http://facebook.com を変数 redirect_page に保存します。header() 関数を使用して、関数の Location に変数 redirect_page を指定します。次に、die() 関数を呼び出します。

以下の例では、Facebook の URL が redirect_page 変数に格納されています。変数はヘッダー関数で使用されます。次のスクリプトを実行すると、ページは Facebook のホームページにリダイレクトされます。die() 関数は、予期しない動作を防ぐために、header() 関数の実行後にスクリプトの続行を停止します。header() 関数については、php マニュアルを確認してください。PHP ファイルをローカル Web サーバー内に配置して、ブラウザーで実行してください。

サンプルコード:

# php 7.x
<?php
$redirect_page = 'http://facebook.com';
header('Location:'  .$redirect_page);
die();
?>

PHP のヘルパーメソッドを使用して、ステータスコード付きの header() 関数を使用して別のページにリダイレクトする

ヘルパー関数 redirect を使用して、ページを別のページにリダイレクトします。

メソッド redirect を定義します。関数の引数として URL とステータスコードを取ります。メソッド内に header() 関数を記述します。header() 関数の引数として、Location の URL とステータスコードを取得します。次に、die() 関数を呼び出します。スクリプトは、header() 関数の実行後に die() 関数に遭遇すると終了します。関数定義の外で、パラメータとして URLhttp://example.com/を指定して redirect 関数を呼び出します。URL をパラメータとして関数を呼び出します。

以下の例では、ステータスコード 301 を使用して、別のページに永続的にリダイレクトしています。スクリプトは、現在のページを http://example.com/にリダイレクトします。303 ステータスコードの詳細については、MDN WebDocsを確認してください。

サンプルコード:

#php 7.x
<?php
function redirect($url, $statusCode = 301) {
    header('Location: '  . $url, $statusCode);
    die();
}
redirect('http://example.com/');
?>

JavaScript の出力バッファリングを使用して別のページにリダイレクトする

PHP 内で JavaScript を使用して、ページを別のページにリダイレクトします。以下の例では、1つのページを Twitter のホームページにリダイレクトします。

タグスクリプトのタイプを text/javascript として記述し、JavaScript コードを記述します。window.location を使用して URL を保存します-http://www.twitter.comecho を使用して script タグ全体を出力します。

この方法は、バッファリング出力と呼ばれます。別のページにリダイレクトする方が高速です。バッファリングされた出力の詳細については、PHP 公式サイトを確認してください。

サンプルコード:

#php 7.x
<?php
echo '<script type="text/javascript">
    window.location = "http://www.twitter.com/"
    </script>';
?>
著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn