301ステータスコードに関する一般的な説明
HTTPステータスコード301 Moved Permanentlyは、要求されたリソースが新しいURLで永続的に利用可能であることを示します。ブラウザや検索エンジンなどのクライアントがこのレスポンスを受け取ると、自動的に新しいアドレスにリダイレクトされます。同時に、クライアントは新しいURLを記憶しているので、今後のリクエストはそこに直接送ることができます。このステータスコードは、ウェブサイトが再構築されたときやコンテンツが移動したときに、ユーザーや検索エンジンが更新されたパスを使用するようにするためによく使用されます。エンドユーザーにとっては、リダイレクトが自動的に行われるため、通常はバックグラウンドで気づかれることなく行われます。技術的な観点からは、301 Moved Permanentlyリダイレクトは、既存のリンクを失うことなく、検索エンジンのランキングとトラフィックを新しいURLに転送するために重要です。正しく使用することで、ウェブサイトの維持と最適化に役立つツールとなります。
HTTPステータスコード301の仕様
301 Moved Permanentlyステータスコードは、対象のリソースに新しい永続的なURIが割り当てられたことを示し、今後このリソースを参照する場合は、同封されたURIのいずれかを使用する必要があります。リンク編集機能を持つクライアントは、可能であれば、有効なリクエストURIへの参照を、サーバーから送られた1つ以上の新しい参照に自動的に再リンクするべきです。
サーバーは、新しいパーマネントURIへの優先URI参照を含むレスポンスのLocationヘッダーフィールドを生成するべきです(SHOULD)。 ユーザーエージェントは、自動リダイレクトのためにLocationフィールドの値を使用してもよい(MAY)。
サーバーの応答ペイロードは通常、新しいURIへのハイパーリンクを持つ短いハイパーテキストノートを含みます。
注:歴史的な理由から、ユーザーエージェントはその後のリクエストのためにPOSTからGETにリクエストメソッドを変更してもかまいません。
301 Moved Permanentlyレスポンスはデフォルトでキャッシュ可能です。つまり、メソッドの定義や明示的なキャッシュ制御([RFC7234]のセクション4.2.2参照)によって特に指示されていない限りは、です。
出典・引用元はこちら 301 Moved Permanently HTTP Status Code は、6.4.2 のセクションで規定されています。
PHPで301ステータスコードを投げるには?
WebページでHTTPステータスコード301を投げるには、PHPの関数http_response_codeを使用することができます。構文は次のとおりです: http_response_code(301) (PHP 5 >= 5.4.0, PHP 7, PHP 8)
301 HTTPステータスコードのテスト
クライアント側でHTTPステータスコード(ここでは301 Moved Permanently)などを表示できるようにするためには、F12で開発コンソールを開く必要があります。次に、「ネットワーク」タブに移動します。これでページを開くことができ、ネットワークタブにウェブサイト(例のindex.php)が表示されるはずです。これを選択し、次にHerderセクションを選択する必要があります。すると、ユーザーは次のような結果を見ることができます:
URL: https://http-statuscode.com/errorCodeExample.php?code=301
ステータス: 301 Moved Permanently
それらの: Network
IPアドレス: XX.XX.XX.XX
301ステータスコードのブラウザ互換性
Chrome | Yes |
Edge | Yes |
Firefox | Yes |
Opera | Yes |
Safari | Yes |
Chrome Android | Yes |
Firefox for Android | Yes |
Opera Android | Yes |
Safari on iOS | Yes |
Internet | Yes |
WebView Android | Yes |
プログラミング言語における定数
HttpStatusCode.MovedPermanently
http.StatusMovedPermanently
Response::HTTP_MOVED_PERMANENTLY
httplib.MOVED_PERMANENTLY
http.client.MOVED_PERMANENTLY
http.HTTPStatus.MOVED_PERMANENTLY
:moved_permanently