301リダイレクトを使ってブログ引越をフォローする

この記事をdel.cio.usに登録する この記事をはてなブックマークに登録する この記事をGoogleブックマークに登録する この記事をlivedoor clipに登録する

去年ブログを移行したので、記事のURLが 前のブログ kirinsystem.net → 今のブログ ai11.net と 変わってしまいました。

そこでリダイレクトを設定しました。

この設定をすることで、 ブログの記事を見に来た人が旧URLで来た場合、 通常ならば「旧URLはありません」というエラーメッセージになるところですが、 そうならずに 自動で新しいURLにジャンプして そちらの記事を見ることができます。

さらに検索エンジン(GoogleとかYahoo)で検索したとき 結果に出てくるURLも、新URLに変更できます。

ブログ化していない個別記事のリダイレクト

たとえば、

http://kirinsystem.net/japanese_input/nicola.html
↓
http://ai11.net/2005/05/14/

とリダイレクトしたい場合、 .htaccess というテキストファイルに以下の内容を書きます。

redirect 301 /japanese_input/nicola.html http://ai11.net/2005/05/14/
redirect 301 /japanese_input/demo/nicola.html http://ai11.net/2005/05/14/
redirect 301 /japanese_input/tron.html http://ai11.net/2005/05/21/

この .htaccess を http://kirinsystem.net/ のルートに対応するディレクトリ (たとえば /home/UserName/www/ )に置くと 301リダイレクトになります。

リダイレクトの確認

ただし、ほんとうに301リダイレクトされているかは
http://web-sniffer.net/
などで確認したほうがいいです。

そこで旧URLを入力して、 「HTTP Response Header」が HTTP Status Code: HTTP/1.1 301 Moved Permanently になれば 301リダイレクトは成功しています。

ブログ記事のリダイレクト

私は以前 tDiaryを使っていて、今は独自ブログツールを使っています。 そのためドメイン(kirinsystem.net → ai11.net)だけでなく、 そのうしろのURL形式も変わりました。

具体的には

http://kirinsystem.net/diary/?date=20060315
↓
http://ai11.net/2006/03/15/

とリダイレクトしようと思います。

個別記事と違ってこの日付形式の記事は多いので、 いちいち .htaccess に書くより、CGIスクリプトで URL変換したほうがよさそうです。

Rubyで CGI.rbを使えば簡単でした。

#!/usr/local/bin/ruby
require 'cgi'
cgi = CGI.new

y=''; m=''; d=''
param = cgi.params
param.each{|k,v|
  if k == 'date'
    y=v.to_s[0..3]
    m=v.to_s[4..5]
    d=v.to_s[6..7]
  end
}

if y!='' and m!='' and d!=''

  hdr={
    #'status'=>'REDIRECT',
    'status'=>'MOVED',
    'Location'=>"http://ai11.net/#{y}/#{m}/#{d}/"
  }
  print cgi.header(hdr)

else

  hdr={
    'status'=>'MOVED',
    'Location'=>"http://ai11.net/"
  }
  print cgi.header(hdr)

end

この index.cgi を http://kirinsystem.net/diary/ に対応するディレクトリに置いて、実行権限を付ける( chmod 700 index.cgi)と、 同じ日付の記事にリダイレクトできます。

リダイレクトをいつまで実行するか

上記のリダイレクト処理しても、 別の人のブログににリンクが書かれているものは、 旧URLのまま、変わらずに残ってしまいます。

私が旧URLのドメインを確保して、 リダイレクト処理を続けている限り、新URLにリダイレクトされます。

しかしアクセスログを調べたところ、 旧URLでのアクセスはあまり多くないので、 旧URLのドメインは手放すつもりです。 すると、そのうちリダイレクトされなくなり、 「旧URLはありません」というエラーメッセージになってしまいます。

今後はなるべくURLを変えないようにしたいと考えています。

私はサーバに さくらのレンタルサーバ を使っています。


Web制作

この記事をdel.cio.usに登録する この記事をはてなブックマークに登録する この記事をGoogleブックマークに登録する この記事をlivedoor clipに登録する