PHP でリダイレクトする
-
PHP の
header()
関数を使用して、URL を HTTP ヘッダーとしてブラウザに送信する -
PHP のヘルパーメソッドを使用して、ステータスコード付きの
header()
関数を使用して別のページにリダイレクトする - JavaScript の出力バッファリングを使用して別のページにリダイレクトする
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.com
。echo
を使用して script
タグ全体を出力します。
この方法は、バッファリング出力と呼ばれます。別のページにリダイレクトする方が高速です。バッファリングされた出力の詳細については、PHP 公式サイトを確認してください。
サンプルコード:
#php 7.x
<?php
echo '<script type="text/javascript">
window.location = "http://www.twitter.com/"
</script>';
?>
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