8月 03 2007

過去ログ移行メモ

Published by HoLY at 9:09:22 under 連絡事項

過去ログのページ を作成しましたので、必要ならばご覧ください。

以下、ログ移行の過程をメモしておきます。

このサイトは全面的にWordPressに移行したものの、過去のコンテンツ(typoやtDiaryやnDiaryで書いていたもの)の取り扱いについて悩みました。

  1. そのまま今までどおりサービスとして生かしておく
  2. typoの記事はそのまま移行する。残りは1の通り
  3. 全部HTML化して過去ログとして保管
  4. 削除する

結論から言うと3を採用しました。

1は、確実にURLを変えずにコンテンツを維持できる(はず)というのがメリットでした。 2はやや中途半端ですが、WPの検索を使えるという面でメリットがあります。移行自体はやや面倒ですが、両方ともmarkdownで書いているので記事そのものに手を入れる必要はあまりなかったはずです。

しかし、1,2はtypo,tDiaryの各プロセスが残ります。現在サーバのスリムアップを行っており、必要ではないサービスは止めたいという要求があったため、これは却下しました。

4は結構悩ましい(削除したい過去もあるものです!)わけですが、まだ検索エンジンからの参照量が多いことを考えると、できれば記事自体は残しておこうと思いました。

と、消去法で3が残るものの、クリアする条件が発生します。 * 管理上の都合、過去ログをひとつのパスにまとめること * 元のURLからアクセスできること * なるべくリンク切れをなくすこと * サービスで設定されていた文字コードをapacheの設定で決定すること 逆に見た目の保持にはこだわらない方針にしました。

ナビゲーションの修正

余計なナビゲーションなどは削除します。tDiaryやtypoの設定で、不要なサイドバーウィジェットなどを削除します。

URL

元のURLからアクセスできるようにするため、前のディレクトリ構成は保持します。 これをそのままoldディレクトリに設置しました。これは、wget で作成したミラーを配置しました。 ちなみにwgetだとエスケープされたURLの扱いで失敗したため(おそらく$LANGあたりの関係?)、以下のスクリプトでファイル名を正常にしました。

#!/usr/local/bin/ruby
while l = ARGF.gets
  str = ''
  puts l.gsub(/%(..)/){|a|
    [$1.hex].pack('c')
  }
end

ただし、コンテンツの解説などのページは削除します。内容がかぶっている、あるいは古い情報がほとんどなので。

リンク切れ

この状態で、 /old/articles/2007/01 といったURLでアクセスできること、およそリンク切れがないことを確認します。 また、サーバルートからのパスでリンクが貼ってある場合は修正する必要があります。

最後に、.htaccess で、前のURLから /old/ へステータスコード301でリダイレクトするように設定しました。

RewriteRule ^((xml|files|images|javascripts|stylesheets|pages|articles).*)$ /old/$1 [R=301,L]

これでURLに関してはほとんどフォローできたと思います。

Encoding

文字コードは、システム全体では UTF-8 にしてありますが、tDiary は EUC-JP でした。なので、tDiaryのログのあるディレクトリ( /old/d )の.htaccess に以下の設定を追記します。

AddDefaultCharset EUC-JP

日付によるアクセス

ついでに、/d/YYYYMM あるいは /d/YYYYMMDD で適切にその日付のログに移動できるよう設定します。 時期によってパスが異なるので、統一したURLから辿れると楽だからです。

RewriteRule   ^d/(2004(0[2-9]|1[0-9])[0-9]*)(.html)?$  /old/d/$1       [R=301,L]
# :
# :
RewriteRule   ^d/(2006)(0[2-9]|1[0-2])(.html)?$                /old/articles/$1/$2         [R=301,L]

完了?

以上で、システムの過去ログ移行手順は終了です。 システムを停止します(バックアップは保存)。

Tags: , ,

No responses yet

Trackback URI | Comments RSS

Leave a Reply