PHPでリダイレクト処理を設定する方法は?利用シーンや書き方、注意点も解説!
リダイレクトとは、ユーザーがあるURLにアクセスした際、別のURLへ自動で転送する処理のことです。今回は「PHPでリダイレクト処理を行う方法」に焦点を当て、その概要や利用シーン、書き方、注意点などをご紹介します。気になるポイントを一挙確認しましょう。
リダイレクトとは?
リダイレクトとは、ユーザーがあるURLにアクセスした際、別のURLへ自動で転送する処理のことです。例えば、Webサイトのリニューアル時にURLを変更した場合、リダイレクト処理の設定を行えば、旧URLにアクセスしたユーザーを新サイトに自動で転送できます。
リダイレクトが利用されるシーン
では実際、リダイレクトはどのようなシーンで利用されているのでしょうか。
具体的なシーン | 概要 |
---|---|
1.ログイン画面への誘導 | ログインしなければ見られないようなページにアクセスしようとした際、1度ログインしていればログインしたページに遷移できるように設定する |
2.新URLへの誘導 | Webサイトのリニューアル時、旧URLにアクセスした人を新URLに転送するように設定する |
3.処理後にトップページへ遷移 | ユーザーの登録時に必要な情報を入力し、登録が正常に完了した場合、トップページに遷移するように設定する |
PHPでのリダイレクト処理の書き方
通常のリダイレクト処理をPHPで記述する場合は、header関数を用います。
【基本形】
<?php header(“Location:https://ipeinc.jp/”); exit(); ?> |
header関数の引数に「Location:【URL】」と記述すれば、ユーザーをそのURLに自動で転送させられます。
PHPでのリダイレクト処理にHTTPステータスコードを加える
HTTPステータスコードをリダイレクト時に発信することは、SEOの観点からGoogleも推奨しています。例えば、旧アドレスへのアクセスを永久に転送したい場合は「301」のステータスコードを設定します。
301リダイレクトのメリットは、旧URLのSEO評価を新URLに引き継がせられるということです。つまり、旧URLが検索順位上位に表示されていれば、新URLも上位表示されやすくなるのです。
【第2引数に「true」、第3引数に「301」を指定する場合】
<?php header(“Location:https://ipeinc.jp/”, true, 301); exit(); ?> |
PHPでリダイレクト処理する際の注意点
PHPでリダイレクト処理を記述する場合は、いくつか注意点があります。ここでは、注意点について3点解説します。
リダイレクトの処理後にはexitをつける
リダイレクト処理の後はexitをつけ、PHPの処理を終了させるのが一般的です。exitがなくても処理自体は行われますが、すでにユーザーがいないページでPHPが動作し続ける必要はありません。サーバーの無駄遣いになるので、exitで一連の処理を終了させましょう。
リダイレクト前にHTMLタグを置くのはNG
リダイレクト処理の前にHTMLタグを記述することは避けましょう。PHPは、文字列の出力が発生した時点でheaderを送信する仕組みになっています。header関数を使う前にHTTPヘッダーを送信してしまうと、うまくリダイレクト処理されないので注意が必要です。
リダイレクト前にechoやprintで出力するのはNG
リダイレクト処理の前にechoやprintなどで文字列を出力することも避けましょう。文字列を出力した段階でHTTPヘッダーが送信されてしまうので、うまくリダイレクト処理されません。
PHPでのリダイレクト処理をheader関数以外で設定する方法
ここでは、PHPでのリダイレクト処理をheader関数以外で設定する方法について2点解説します。
JavaScriptを出力してリダイレクトする方法
JavaScriptのリダイレクトをPHPで出力すると、クライアントサイドで画面読込後に処理されるようになります。なお、ユーザーがWebブラウザの設定でJavaScriptを無効にしている場合は処理されないので注意しましょう。
基本形は以下です。
location.href=’リダイレクト先のURL’; |
コード一例は以下です。
<script type=”text/javascript”> <!– setTimeout(“link()”, 0); function link(){ location.href=’https://ipeinc.jp/’; } –> </script> |
metaタグを出力してリダイレクトする方法
metaタグのリダイレクトをPHPで出力することもできます。しかし、検索エンジンがリダイレクト前のURLの評価を全て引き継ぐ保証がないので、SEO的にマイナスの可能性があるでしょう。
基本形は以下です。
<meta http-equiv=”refresh” content=”リダイレクトまでの秒数;URL=URL”> |
コード一例は以下です。
<meta http-equiv=”refresh” content=”0;URL=https://ipeinc.jp/”> |
PHPでリダイレクト処理を適切に行い、SEO評価を引き継がせよう!
このページでは、「PHPでリダイレクト処理」に焦点を当て、その概要や利用シーン、書き方、注意点などについて解説しました。
PHPによるリダイレクト処理は、header関数を用いて設定できます。また、処理時にHTTPステータスコードを加えると旧URLのSEO評価を新URLに引き継ぐことができます。処理時の注意点を意識しながら、適切な設定を行いましょう。
株式企業ipeではSEOでの大手クライアント実績も多数ありますので、SEOを検討する際にはぜひ一度ご相談ください。
SEOに関するご相談があれば、ぜひipe(アイプ)へご相談ください。