PHPでステータスコード404が返す方法と確認方法を解説!
PHPでステータスコード404を返す方法と、正しい404ページの表示方法についてサンプルコードつきで解説します。
PHPでステータスコード404を返す方法
HTTPステータスコードとは、ブラウザがリクエストを送信したときに受け取るコードです。PHPでステータスコード404を返すには、header
関数を用います。
PHPのheader
関数については、下記の301リダイレクトや、307リダイレクトでもご紹介しましたが、ステータスコード404を返すのにも利用できます。
リダイレクトする際のheader
関数の使い方とは異なり、ステータスコード404を返すには、下記の様に記述します。
ステータスコード404
header("HTTP/1.1 404 Not Found");
404エラーページを表示したい場合、header
関数の宣言以降へ画像や文字列などで出力する事ができます。
PHPでステータスコード404が返っているか確認する方法は?
PHPのget_headers
関数を使ってステータスコードを確認する事ができます。
次のサンプルコードでは、header
関数で404を設定したページのヘッダー情報を出力しています。
ステータスコードが404で戻ってくることが確認できました。
まとめ
404ページを表示させていても、正しく404ステータスコードが返せないと、Googleなどのクローラーが「存在するページ」として認識してしまい、サイトの評価を下げてしまう可能性があります。
間違った404ページの設定例をご紹介したいと思います。
間違った404ページ
header("HTTP/1.1 404 Not Found");
header("Location: https://example.com/404");
exit();
上記コードのステータスコードをサンプルコードで確認してみます。
ステータスコードは302でした。
header
関数でステータスコード404を宣言していても、その下で記述されている別ページへのリダイレクト処理で、ステータスコードが上書きされた為です。
このように間違った404ページは、サイトの評価を下げてしまうため、注意しましょう。
存在していないページはきちんと404のステータスコードを返しユーザーにもクローラーにも存在していないことをきちんとアピールしましょう。