[ PHP ] 301 リダイレクトと HTMLヘッダのメタタグ(refresh形式) によるURL転送

Pocket

ここでは、サイトやブログの移転時にページ単位で 301 リダイレクトを行うサンプルを掲載しています。テンプレートをコピーしてリダイレクト(引越)先の URL を書き換えるだけです。引越し前の URL へのアクセスは自動的に新しい URL へとリダイレクトされるので、ユーザビリティの面でも効果的です。また、検索エンジンにも引越しをページ単位で伝えることができます。

スポンサーリンク

PHP による 301 リダイレクト

PHP で 301 リダイレクトを行うサンプルです。引越し後の URL を貼り付けて使用します。

<? 

Header( "HTTP/1.1 301 Moved Permanently" ); 
Header( "Location: ここにリダイレクト先のURLを記述" ); 
// 例 
// Header( "Location: https://www.hikkoshisaki.com/category/test.php" ); 

?>

HTML ( meta refresh 形式 ) によるリクエストの転送

HTML では 301 リダイレクトを記述できません。その代わりに待機時間なしで、ユーザのリクエストを新 URL に転送します。

<html>
<head>
<meta http-equiv="refresh" content="0; URL=https://www.hikkoshisaki.com/category/test.html">
</head>
<body>
何も記載する必要はないです。
----------------------------------------
http-equiv:refresh
content:0 + 転送する新 URL
</body>
</html>

どちらのリダイレクトを使用したほうがよいか

検索エンジンは待機時間 0 での meta refresh 形式のリダイレクトに限り 301 リダイレクトと同様に扱いますが、できる限り 301 リダイレクトを使用することが推奨されていますmeta refresh 形式のリダイレクトをサイト移転に使うことはお奨めしません。W3C も、meta refresh 形式のリダイレクトをやめるように推奨しています。

また、必ず URL ごとにリダイレクトするようにしましょう。旧サイトの URL すべてを新サイトのトップページにリダイレクトしてもいけません

ただし、サイトごとの都合というものもありますので、趣味の個人サイト程度であれば 「 何が何でも推奨に従う 」 よりも、サイトの引越しによってアクセス数は激減するかもしれませんが、いずれ復活すると思いますので、新たなコンテンツの作成に注力したほうが良い場合もあると思います。

実際、本ブログも meta refresh 形式でジャンジャン転送しています。転送しているのはブラウザですが。。。アクセス数は良くわかりません。個別のページ数まで気合入れて確認したことないです。残念。

リダイレクトの無限ループ

誤ってリダイレクトを自分自身の URL に設定してしまったところ、以下のように ERR_TOO_MAN_REDIRECTS エラーという結果になってしまいました。ブラウザに感謝です。自分のサイトに DOS 攻撃しているようなものですね。なお、黒く塗りつぶした部分には、ドメインが入ります。レンタルサーバであれば、何らかの処置がとられるかもしれません。

リダイレクトの無限ループ

リダイレクトの無限ループ

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *