<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>monolog...</title>
<link>http://monolog.devgiri.org/index.php</link>
<pubDate>Fri, 25 Dec 2009 05:00:00 +0900</pubDate>
<description>monolog...</description>
<language>ja</language>
<generator>Loggix</generator>
<item>
<title>PHPを使った「 301 Redirect 」の設定</title>
<guid isPermaLink="true">http://monolog.devgiri.org/index.php?id=109</guid>
<pubDate>Fri, 25 Dec 2009 05:00:00 +0900</pubDate>
<description><p>Blogを統合する際、旧Blogから全ログを新Blogに引き継いだため、旧Blogは閉鎖して新Blogに 301 Redirect させることにしました。単純にindex.phpへのアクセスをRedirectさせるだけなら、.htacces...</p>
</description>
<content:encoded>
<![CDATA[
<p>Blogを統合する際、旧Blogから全ログを新Blogに引き継いだため、旧Blogは閉鎖して新Blogに 301 Redirect させることにしました。単純にindex.phpへのアクセスをRedirectさせるだけなら、.htaccessを使って次のようにRedirectさせれば良いだけです。</p>
<div class="command">
<pre>
Redirect permanent /index.php http://新URI/index.php
</pre>
</div>
<p>または、</p>
<div class="command">
<pre>
Redirect permanent / http://新URI/
</pre>
</div>
<p>ところが、今回は単純なURI移動ではなくて2つのBlogを1つにまとめており、しかも両Blogのログを時系列に並べ替えています。したがって、旧Blogの各記事への直接リンクは、.htaccessでの設定では適切にRedirectさせることができませんでした。いろいろ調べたのですが、上手い方法が見つからなかったので、最終的にはXREAのユーザー掲示板で教えを乞い、PHPを使ったRedirect設定を使うことにしました。</p>
<h4>PHPを使った 301 Redirect</h4>
<p>ネタ元とゆーか、教えていただいたXREAユーザー掲示板の該当スレッドはこちらです。shimix様、有益な方法を教えていただいて有り難うございました。</p>
<ul>
<li>
<a href="http://sb.xrea.com/showthread.php?t=14480">XREA&amp;CORE SUPPORT BOARD 該当スレッド</a>
</li>
</ul>
<p>具体的には、次のようなPHPファイルを作成し、P_BLOGの場合はarticle.php、Loggixの場合はindex.phpと差し替えます。
&ldquo;newid&rdquo;の*の部分を新Blogで対応する記事番号にしていけば良いわけです。</p>
<div class="command">
<pre>
&lt;?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 );
?&gt;
</pre>
</div>
<p>記事数が多いといささか大変ですが、不規則な記事idへ301ステータス付きでRedirectできるのが素晴らしいところです。</p>
<p>なお、Loggixの方はこれだけでOKですが、P_BLOGの方はindex.phpへのリンクやcategory.php、search.phpへのリンクも考えられるので、これらを新Blogのindex.phpへRedirectさせるように.htaccessでの Redirect permanent も併用すると良いでしょう。</p>
<p>以上</p>
]]>
</content:encoded>
</item>
</channel>
</rss>
