静的webページからwordpressに再構築する場合のスムーズな移行方法

すでに既存のwebページ(静的html)があり、同じドメイン名を使ってwordpressに移行する場合、テスト用の別サーバを用意してそこにwordpressを構築し、hostsファイルを切り替えて作成、確認を行っていた。
作成者側だけが作成、確認を行う場合はそれでもいいが、第三者が構築中のページを確認したい場合はhostsファイルの切り替え説明をするのが面倒だったりする。

DirectoryIndex index.html index.php

として、wordpressはindex.phpを指定して参照できればいいかと思ったが、 http://www.example.jp/index.php としても'/'にリダイレクト(つまりindex.htmlを参照)するするようで、

http://ja.forums.wordpress.org/topic/1493
http://ja.forums.wordpress.org/topic/1112

に書いてあるようにwp-includes/canonical.phpの該当箇所(3.3.1では304行目)を書き換えてみたが3.3.1では変わらずリダイレクトしてしまう。

そこで以下のようにしてみた。

  1. wordpressのインストール。
  2. wordpress直下に任意のディレクトリを作成し、その配下に静的html関連ファイルを置く。
  3. 専用テーマディレクトリ内のhome.phpを静的htmlのトップページを元に作成。文字コードUTF-8にすること(HTTP responseのcontent-typeでwordpressUTF-8をつけるようでShift_JISのままだと文字化けする)。
  4. home.phpでは画像やスタイルシートは前述の任意ディレクトリ配下を参照するようにする。
  5. home.phpから静的htmlへのリンクも前述の任意ディレクトリ配下になるようにする。
  6. 静的html内のリンクも同様に確認(相対パスになっていれば問題ないはず)。
  7. 移行後のトップページのためにpage_id=2を使う(page_id=2はサンプルページでスラッグ名がsample-page)。page_id=2の専用テンプレートはpage-2.phpとなり、これをトップページとして作成する。
  8. wordpressの管理画面は通常と同様である。確認したい場合にだけ、/?page_id=2(パーマリンクの設定によっては/sample-page/)とする。
  9. 正式移行の際は、page-2.php を home.php とし、前述の作成した任意ディレクトリを削除すればよい。

実際にスムーズに切り替えを行うには、「wordpressのインストール」から「静的html内のリンクの確認」まで別サーバで行い、本番サーバにデータを持ってきて切り替えることが必要かもしれないが、正式移行の際の手間がかなり省ける。

なお、こんな方法も考えられるがデータベースの書き換えを行うためにあまりお勧めしない。

  1. ドメイン名でwordpressを構築。
  2. ドメイン名のまま、作成、確認。
  3. 作成完了となったら、mysqldumpにてダンプを取得。
  4. ダンプファイルの該当の別ドメイン名を正規のドメイン名に置換。
  5. mysqlコマンドにて書き換えたダンプファイルを読み込む。
  6. httpd.confの書き換えで正規のドメイン名でアクセスできるように修正。
  7. configtest と graceful restartを実行。
  8. 正規のドメイン名で表示確認。