ホームページ  >  記事  >  バックエンド開発  >  PHPの302エラーとは何ですか

PHPの302エラーとは何ですか

青灯夜游
青灯夜游オリジナル
2022-04-22 16:36:145308ブラウズ

PHP では、302 はエラーではなく、「一時的なリダイレクト」を意味する HTTP 応答ステータス コードであり、訪問したページがさまざまなニーズにより一時的に他のページにジャンプすることを示します。header() は302 ジャンプを実装するには、構文は「header('Location: Jump url',true,302)」です。

PHPの302エラーとは何ですか

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

302 は一時転送 ( Temporarily Moved ) は HTTP 応答ステータス コードであり、エラーではありません。

302 は一時的なリダイレクトを意味し、訪問したページがさまざまなニーズにより一時的に他のページにジャンプすることを意味します。

php では、header() を使用して 302 ジャンプを実装できます。

には 2 つの構文形式があります:

  • 文法形式 1:

header('HTTP/1.1 302 Moved Permanently');
header('Location: https://www.php.cn');
  • 文法形式 2:

header('Location: https://www.php.cn', true, 302);

もう 1 つ、HTTPS/HTTP に適応させたい場合は、これで十分です:

header('Location: //www.php.cn', true, 302);

#拡張知識:

HTTP--3xx (リダイレクト) 応答ステータス コード

リクエストを完了するには、さらにアクションが必要です。通常、これらのステータス コードはリダイレクトに使用されます。 Google では、リクエストごとに 5 つ以下のリダイレクトを使用することを推奨しています。ウェブマスター ツールを使用すると、Googlebot がリダイレクトされたページのクロールに問題があるかどうかを確認できます。 [診断] の [ウェブ クロール] ページには、リダイレクト エラーにより Googlebot がクロールできなかった URL がリストされます。

  • 300 (複数選択): リクエストに応じて、サーバーはさまざまな操作を実行できます。サーバーは、リクエスター (ユーザー エージェント) に基づいてアクションを選択することも、リクエスターが選択できるアクションのリストを提供することもできます。

  • 301 (永続的に移動されました): 要求された Web ページは新しい場所に永続的に移動されました。サーバーがこの応答を (GET または HEAD 要求に応答して) 返すと、要求者を新しい場所に自動的に転送します。ページまたはウェブサイトが新しい場所に完全に移動されたことを Googlebot に伝えるには、このコードを使用する必要があります。

  • 302 (一時的な移動): サーバーは現在、別の場所にある Web ページからのリクエストに応答していますが、リクエスターは今後のリクエストに応答するために元の場所を引き続き使用する必要があります。このコードは、get リクエストと head リクエストに応答する 301 コードに似ています。リクエスタを自動的に別の場所にリダイレクトします。ただし、このコードは、ウェブページやウェブサイトが移動したことを Googlebot に伝えるために使用しないでください。元の場所をクロールし続け、インデックスが作成されます。

  • 303 (他の場所を表示): リクエスターが応答を取得するために異なる場所への個別の get リクエストを使用する必要がある場合、サーバーはこのコードを返します。ヘッド外のすべてのリクエストについては、サーバーは自動的に他の場所に移動します;

  • 304 (未変更): リクエストされた Web ページは、最後のリクエスト以降変更されていません。サーバーがこの応答を返す場合、Web ページのコンテンツは返されません。Web ページが要求者の最後の要求以降に変更されていない場合、サーバーはこの応答 (if-modified-Since HTTP ヘッダーと呼ばれる) を返すように構成する必要があります。サーバーは、最後にクロールされてからページが変更されていないことを Googlebot に伝えることができるため、帯域幅とオーバーヘッドが節約されます。

  • 305 (プロキシの使用): 要求者は、要求された Web ページにアクセスするためにプロキシのみを使用できます。サーバーがこの応答を返した場合は、リクエスターがプロキシを使用する必要があることも示します。

  • 307 (一時リダイレクト): サーバーは現在、別の場所にある Web ページからのリクエストに応答していますが、リクエスターは今後のリクエストに応答するために元の場所を引き続き使用する必要があります。このコードは、応答の get と同じです。head によってリクエストされた 8aa2918506a11e8a886e85949f1eb0795db79b134e9f6b82c0b36e0489ee08ed コードは類似しており、リクエスタを別の場所に自動的に転送しますが、Googlebot にそれを伝えるべきではありません。特定のページまたはウェブサイトが移動された場合、Googlebot は引き続き元の場所をクロールし、インデックスに登録されます。

#PHP ヘッダーの 7 つの使用方法

1. ページに移動

header('Location:'.$url);  //Location和":"之间无空格。

2. content-type を宣言

header('content-type:text/html;charset=utf-8');

3. レスポンスステータスコードを返す

header('HTTP/1.1 404 Not Found');

4. 一定時間後にジャンプ実行

header('Refresh: 10; url=http://www.php.cn/');  //10s后跳转。

5. ブラウザキャッシュを制御

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");

6. . httpを実行検証

header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');

7. ダウンロード操作を実行します

header('Content-Type: application/octet-stream'); //设置内容类型
header('Content-Disposition: attachment; filename="example.zip"'); //设置MIME用户作为附件
header('Content-Transfer-Encoding: binary'); //设置传输方式
header('Content-Length: '.filesize('example.zip')); //设置内容长度

推奨学習:「

PHPビデオチュートリアル

以上がPHPの302エラーとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。