静的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では変わらずリダイレクトしてしまう。
そこで以下のようにしてみた。
- wordpressのインストール。
- wordpress直下に任意のディレクトリを作成し、その配下に静的html関連ファイルを置く。
- 専用テーマディレクトリ内のhome.phpを静的htmlのトップページを元に作成。文字コードはUTF-8にすること(HTTP responseのcontent-typeでwordpressがUTF-8をつけるようでShift_JISのままだと文字化けする)。
- home.phpでは画像やスタイルシートは前述の任意ディレクトリ配下を参照するようにする。
- home.phpから静的htmlへのリンクも前述の任意ディレクトリ配下になるようにする。
- 静的html内のリンクも同様に確認(相対パスになっていれば問題ないはず)。
- 移行後のトップページのためにpage_id=2を使う(page_id=2はサンプルページでスラッグ名がsample-page)。page_id=2の専用テンプレートはpage-2.phpとなり、これをトップページとして作成する。
- wordpressの管理画面は通常と同様である。確認したい場合にだけ、/?page_id=2(パーマリンクの設定によっては/sample-page/)とする。
- 正式移行の際は、page-2.php を home.php とし、前述の作成した任意ディレクトリを削除すればよい。
実際にスムーズに切り替えを行うには、「wordpressのインストール」から「静的html内のリンクの確認」まで別サーバで行い、本番サーバにデータを持ってきて切り替えることが必要かもしれないが、正式移行の際の手間がかなり省ける。
なお、こんな方法も考えられるがデータベースの書き換えを行うためにあまりお勧めしない。