リダイレクトは、特にURLの変更、SEO、またはリンク構造の調整を扱う場合、Web開発で一般的な操作です。 PHPは、HTTPヘッダーの出力を実装するHeader()関数を提供し、それによりURLリダイレクトを実装します。異なるHTTPステータスコードを設定することにより、最も一般的なリダイレクトの種類を制御できます。これら2つのリダイレクトの主な違いは、セマンティクスとアプリケーションシナリオが異なることです。
301リダイレクト(永久リダイレクト)
301リダイレクトとは、リソースが永久に新しい場所に移動されたことを意味します。クライアントまたは検索エンジンが301の応答を受信すると、元のURLを新しいURLに置き換え、将来のリクエストでは、新しいURLに直接アクセスします。 SEOの場合、301リダイレクトは、元のURLの重量とランキングを新しいURLに渡す最も一般的な方法です。
302リダイレクト(一時リダイレクト)
302リダイレクトとは、リソースが一時的に新しい場所に移動されることを意味します。クライアントまたは検索エンジンがこの応答を受信すると、元のURLを要求し続け、新しいURLを永続的なアドレスとして保存しません。このリダイレクトは通常、URLを一時的に変更する必要があるが、将来的には元のURLに復元される場合に使用されます。
PHPでは、 Header()関数を使用してHTTPヘッダー情報を送信してリダイレクトを実装できます。適切なHTTPステータスコードを指定することにより、さまざまなタイプのリダイレクトを実装できます。例えば:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://m66.net/new-url"); // ターゲットに置き換えます URL
exit();
?>
このコードは、301ステータスコードを使用して、永続的なリダイレクトを示します。ユーザーが現在のページにアクセスすると、ブラウザが新しいURLに向けられ、リダイレクトがキャッシュされるため、後でアクセスすると直接新しいアドレスにジャンプします。
<?php
header("HTTP/1.1 302 Found");
header("Location: https://m66.net/temporary-url"); // ターゲットに置き換えます URL
exit();
?>
このコードは302の一時的なリダイレクトを実装し、ブラウザは一時的に新しいアドレスにジャンプしますが、元のURLのリクエストアドレスは変更されません。一時的なリダイレクトが完了すると、ユーザーは元のURLにアクセスし続けます。
特性 | 301リダイレクト(永久リダイレクト) | 302リダイレクト(一時リダイレクト) |
---|---|---|
セマンティクス | 永久に移動すると、リソースが永続的に新しい場所に移動されることを意味します | 一時的な移動とは、リソースが一時的に新しい場所に移動されることを意味します |
SEOインパクト | 検索エンジンは、ページの重量を新しいページに渡します | 検索エンジンは、元のページの重量を維持し、新しいページに渡されません。 |
キャッシュ動作 | ブラウザと検索エンジンは新しいURLをキャッシュし、将来的に古いURLを要求しなくなります | ブラウザと検索エンジンは新しいURLをキャッシュしませんが、元のURLを要求します。 |
シナリオを使用します | ウェブサイトの構造が変更されたときに使用されます。ドメイン名の変更、またはリソースの永続的な移行 | 一時的なページのメンテナンス、A/Bテスト、または一時的なアクティブページ中に使用 |
実際の開発では、さまざまなビジネスニーズに応じて301または302リダイレクトを使用することを選択する必要があります。
ウェブサイトの移行:ドメイン名またはウェブサイトの構造の変更を変更する必要がある場合は、301リダイレクトを使用して古いURLを新しいURLに永続的にリダイレクトして、SEO重量が失われないようにします。
ページを永続的に削除する:ページが使用されなくなり、復元されない場合は、301リダイレクトを使用して他の関連ページにトラフィックを向けることができます。
統一ドメイン名:Webサイトに複数のドメイン名(wwwバージョンや非WWWバージョンなど)がある場合、301リダイレクトを使用してアクセスパスを統合して、SEOに影響を与える複製コンテンツを避けることができます。
一時的なページの変更:たとえば、ページがメンテナンスまたは更新中にある場合、302を使用して一時ページにリダイレクトし、メンテナンスが完了するまで、元のページを復元することができます。
A/Bテスト:A/Bテストを行っていて、さまざまなページバージョンをテストしたいが、SEOウェイトに影響を与えたくない場合は、302リダイレクトを使用できます。
プロモーション:時間制限されたプロモーションを実施している場合は、ユーザーを一時的に特別なページにリダイレクトし、イベントが終わった後に元のページを復元できます。
PHPでは、301または302リダイレクトにHeader()関数を使用することは非常に簡単ですが、WebサイトのSEOおよびユーザーエクスペリエンスには適切なリダイレクト方法を選択することが重要です。一般的に言えば、301リダイレクトを使用する場合、リソースが永続的に変更されたことを確認する必要がありますが、302リダイレクトを使用する場合、ページの変更は一時的なものであることを意味します。これら2つのリダイレクトメソッドを合理的に選択することにより、WebサイトのURL構造をより適切に管理し、ユーザーに優れた閲覧体験を提供できます。
関連タグ:
header