現在の位置: ホーム> 最新記事一覧> PHPチュートリアル:301永久リダイレクトを正しく実装する方法

PHPチュートリアル:301永久リダイレクトを正しく実装する方法

gitbox 2025-08-02

背景の紹介

301ジャンプとは、ユーザーが特定のURLにアクセスすると、サーバーが要求を別のURLに永久にリダイレクトし、ステータスコード301を返すことを意味します。 301ジャンプ操作は、PHPでシンプルで柔軟で効率的です。

301ジャンプを実装するPHPの原則

Header()関数を使用してジャンプします

PHPでは、HTTP応答ヘッダーをHeader()関数に送信し、位置フィールドをターゲットURLに設定してジャンプを達成できます。

 header("Location: https://www.example.com/new-url", true, 301);
exit;

上記のコードは、指定されたURLに訪問者をリダイレクトし、301ステータスコードを返します。 2番目のパラメーターTrueは、以前にヘッダーを同じ名前に置き換えることを意味します。

http_response_code()with header()を使用します

別の方法は、http_response_code()を呼び出してステータスコードを最初に設定し、次に位置ヘッダーをheader()に設定することです。

 http_response_code(301);
header("Location: https://www.example.com/new-url");
exit;

この書き込み方法は、ステータスコードとジャンプアドレスを分離し、ロジックをより明確にします。

サンプルコード

次の例は、301ジャンプを実装するための完全なコードを示しています。

 $url = "https://www.example.com/new-url";

// 方法1:header関数実装
header("Location: $url", true, 301);
exit;

// 方法2:http_response_codeそしてheader関数実装
http_response_code(301);
header("Location: $url");
exit;

注意すべきこと

ジャンプする前に出力を無効にします

Header()を呼び出す前に、スペース、ラインブレイク、HTMLタグなど、ページ出力はありません。それ以外の場合は、ジャンプの障害または警告を引き起こします。

 // エラーの例
echo "Hello World!";
header("Location: https://www.example.com");
exit;

// 正しい例
header("Location: https://www.example.com");
exit;

ステータスコード設定順序

http_response_code()を使用してステータスコードを設定する場合、header()を呼び出して位置ヘッダーを設定する前に実行する必要があります。場所を設定するとき、ステータスコードは自動的にデフォルトの200に変更されるためです。

 // エラーの例
header("Location: https://www.example.com");
http_response_code(301);
exit;

// 正しい例
http_response_code(301);
header("Location: https://www.example.com");
exit;

要約します

PHPは301ジャンプ操作のシンプルで実用的であり、ページURL調整であろうとターミナルクロスリダイレクトであろうと、簡単に対処できます。 Header()およびhttp_response_code()を正しく機能させ、高度な出力がないようにして、ジャンプが安定して信頼できるようにするだけです。