ブログを移転したが、検索サイトの結果も移転したい気がする。殆どアクセスが無いサイトだけど、結構 Google の検索順位は高かったので、勿体ない。いろいろ調べると 301リダイレクトを行えば良いらしい。
詳細は Google のヘルプ「サイトの移転に関するヒント」に記述があり、他の検索エンジンとかの対処法も同様らしい。
自前で運用してた typo は、Apache 2.0.x + mod_proxy -> mongrel -> Rails 1.2.x なので、色んな所に実装できそうだが、一番簡単な apache の方で対応してみた
対応
Blogger が生成する permalink は記事タイトルの適当に変換したもので、特定の文字列に変更することはどうも出来ないらしい。記事毎に旧ブログと新ブログのURLの対応づけを指定する必要がある。
対応付け毎に 301リダイレクトする設定に加えて、 移行済みの記事は railsのアプリサーバに渡さないようにすると、次のようになる。
ProxyPass <旧ブログのURLパス> !
redirect 301 <旧ブログのURLパス> <Bloggerでの対応するURL>
これを、記事毎に用意すれば良い。。。後は力技だわ。
力技
記事を移行しつつ、対応付けを下記の書式で一行毎に記録する。
redirect.conf.in
<旧ブログのURLパス片> <Bloggerでの対応するURLパス>
このファイルを上の設定に変換する perl スクリプトに通して、
cvt.pl
#!/bin/env perl
$dsite = "http://XXXXX.blogspot.com";
while (<>) {
($s, $d) = split(/\s+/);
$surlpath = "/articles$s";
$durl = "$dsite$d";
print <<EOM
ProxyPass $surlpath !
redirect 301 $surlpath $durl
EOM
}
出てきた設定を include 命令で読み込むようにすれば良い。
# cvt.pl redirect.conf.in > redirect.conf # /etc/init.d/httpd configtest Syntax OK # /etc/init.d/httpd graceful
この時点で、旧ブログで移行済みの記事を参照すると、Bloggerへ誘導されるようになる。
あとはクローラが認識するまで180日くらいは必要らしい。。。本当に移行できるんかいなぁ。
追記(2008/08/05)
RSS/Atom の移転に関しても、301のレスポンスを返すと参照先を変更してくれるらしい。なので、RSS/Atomに関しても301リダイレクトを返すようにした。。。
0 件のコメント:
コメントを投稿