Article ID : 109

PHPを使った「 301 Redirect 」の設定

Blogを統合する際、旧Blogから全ログを新Blogに引き継いだため、旧Blogは閉鎖して新Blogに 301 Redirect させることにしました。単純にindex.phpへのアクセスをRedirectさせるだけなら、.htaccessを使って次のようにRedirectさせれば良いだけです。

Redirect permanent /index.php http://新URI/index.php

または、

Redirect permanent / http://新URI/

ところが、今回は単純なURI移動ではなくて2つのBlogを1つにまとめており、しかも両Blogのログを時系列に並べ替えています。したがって、旧Blogの各記事への直接リンクは、.htaccessでの設定では適切にRedirectさせることができませんでした。いろいろ調べたのですが、上手い方法が見つからなかったので、最終的にはXREAのユーザー掲示板で教えを乞い、PHPを使ったRedirect設定を使うことにしました。

PHPを使った 301 Redirect

ネタ元とゆーか、教えていただいたXREAユーザー掲示板の該当スレッドはこちらです。shimix様、有益な方法を教えていただいて有り難うございました。

具体的には、次のようなPHPファイルを作成し、P_BLOGの場合はarticle.php、Loggixの場合はindex.phpと差し替えます。 “newid”の*の部分を新Blogで対応する記事番号にしていけば良いわけです。

<?php
$id = $_GET['id'];
if ($id == '1') { $newid = '*'; }
if ($id == '2') { $newid = '*'; }
if ($id == '3') { $newid = '*'; }
    :
    :
header( 'HTTP/1.1 301 Moved Permanently' );
header( 'location: http://new.example.com/index.php?id='. $newid );
?>

記事数が多いといささか大変ですが、不規則な記事idへ301ステータス付きでRedirectできるのが素晴らしいところです。

なお、Loggixの方はこれだけでOKですが、P_BLOGの方はindex.phpへのリンクやcategory.php、search.phpへのリンクも考えられるので、これらを新Blogのindex.phpへRedirectさせるように.htaccessでの Redirect permanent も併用すると良いでしょう。

以上

コメント (0)

< No Comments >

Post Your Comment

(オプション)


(Smile) (Wink) (Laugh) (Foot in mouth) (Frown) (Gasp) (Cool) (Tongue) (Ambivalent) (Angry) (Undecided) (Yum) (Cry) (Sealed) (Touched) (Sleep) (Strong) (Focus) (Confused) (Embarasssed)

*は入力必須です。E-Mailは公開されません。

CAPTCHA™ Code

トラックバック (0)

< No Trackbacks >

Track from Your Website