PHP でリダイレクトをする場合には header 関数を使ってコーディングしますが、その際 301 / 302 リダイレクトを指定する方法をご紹介いたします。
目次
header 関数
特に指定せず header 関数を使って https://hogehoge.com/ にリダイレクトするにはこう書きます…
<?php
header("Location: https://hogehoge.com/");
exit();
?>
注意点
3行目に「exit();」を書いている理由ですが、これを書かなければ リダイレクトしたあとに3行目以下のコードが実行されてしまうためです。
このサンプルプログラムでは以下に何も書いていませんが、通常は色んなコードが書かれていることが多く そういった場合に「リダイレクトしてるのに、なぜかリダイレクトされてないような現象が起きている、、??」と…頭を悩ませてしまうことになってしまいます(経験談)。
「exit();」はリダイレクトする場合には必ず書いておくべきです。
301 リダイレクト
上記のコードに「301 リダイレクト」を指定するには、header 関数の上に「301 リダイレクト」であることを一行記述して このように書きます…
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://hogehoge.com/");
exit();
?>
302 リダイレクト
302 リダイレクトの場合には、上記の「header(“HTTP/1.1 301 Moved Permanently”);」を書かなければ 302 リダイレクトになります。
SEO 対策への影響
現在では Google 検索エンジンにおける 301 リダイレクト と 302 リダイレクト の扱いの差はほとんどなくなったそうですが、以前は 301 リダイレクト の場合には 転送前の SEO 評価(Page Rank)を引き継いで、302 リダイレクト の場合には SEO 評価(Page Rank)を引き継がなかった時期もあったそうなので、やはりきちんと 301 リダイレクトは指定しておいた方が良さそうですね。
SNS開発18年で2つのSNSを開発・運用中の当社が、あなたのアイデアを形にするお手伝いをします。