【PHP】ステータスコードを出力する方法
こんにちは!CODE CLUB965のKです!
今回は、PHPでステータスコードを出力する方法について書こうと思います。
プログラミング学習を始めたばかりの方だと「ステータスコード」と聞いてピンと来ない方もいると思います。
ステータスコードとは、簡単に言うと「リクエストに対してサーバーが応答した時の種類(分類)を示すコード」です。
例えば、あるウェブページのURLを誤って入力してアクセスした際に、ウェブページが存在しないと、通常だとステータスコード「404」コードを返します。
この404コードを見て「ウェブページが存在しない」と判断することができるのです。
見たことがあるという方も多いと思います。
ちなみにステータスコードについてもっと詳しく知りたい方は、代表的なステータスコードをまとめた記事がありますので参考にして下さい。
以下の記事です。
ステータスコードを出力する
ステータスコードは以下の2つのメソッドを使うことで出力することができます。
・header()
・http_response_code()
それぞれの使い方の例を見てみましょう。
header()
一部ですが、よく使われるステータスコードの例を載せておきます。
・ステータスコード 200
あるウェブページにアクセスし、それが適切に表示された場合などに返すコードです。
<?php
header('HTTP/1.1 200 OK');
・ステータスコード 301
永続的なリダイレクトを表すコードです。
Google の SEO を意識する場合に使ったりします。
<?php
header('Location: https://hogehoge.com/', true, 301);
・ステータスコード 404
ページが見つからない場合に返すコードです。
<?php
header('HTTP/1.1 404 Not Found');
・ステータスコード 500
サーバーエラーの際に返すコードです。
<?php
header('HTTP/1.1 500 Internal Server Error');
http_response_code()
こちらのメソッドは引数にステータスコードを渡してあげるだけでOKです。
header()の場合、上記のように引数にメッセージなどを指定する必要があるため、こちらの方が簡単に使用できますね。
<?php
http_response_code(200);
ちなみに上記の2つのメソッドを組み合わせた方法もあります。
例えばあるコンテンツのURLが引越しした際にページをリダイレクト(自動転送)させる時などに使えます。
リダイレクトは301のステータスコードを使用します。
以下の例では301コードを示した後でリダイレクトさせます。SEO的にもいいかと思います。
<?php
// ステータスコードを出力
http_response_code(301) ;
// リダイレクト(自動転送処理)
header( "Location: http://hogehoge.com/new_page.jp" ) ;
exit ;
header()の引数に、「"Location: リダイレクト先のパス"」
を指定することで、ユーザーを対象のページにリダイレクトさせることができます。
また注意点として、リダイレクト後に何かしらの処理をしたくない場合は「exit」を記述するようにしましょう。
処理が続いても問題ない場合は記述不要です。
最後に
今回はPHPでステータスコードを出力する方法について書きました。
代表的なステータスコードの記事と併せて読んでいただければと思います。
それでは、また!