パーマリンクを維持してMTからWPに引っ越す。

プログのMobile対応強化の為Movable Type5.02(以下MT)からWordPress3.0.1(以下WP)へ引っ越したが、
最も苦労したのは、パーマリンクの維持である。

先に結論を言います。

MTのバーマリンクは、
http://march-brown.sakura.ne.jp/blog/2010/08/post-32.php
という構造になっているので、
WPのバーマリンクを、
http://march-brown.sakura.ne.jp/blogwp/2010/08/post-32.php
という構造にします。
そして、ブログを展開しているディレクトリのひとつ上に置いた.htaccessファイルに、

RewriteEngine On
RewriteRule ^blog(.*)$ /blogwp$1 [R=301,L]

と記入して、なんとかうまく行った。

.htaccessに記入したこの2行で、「blog」にアクセスしてきたユーザーを自動的に「blogwp」に誘導できた。

サーバ技術に関して全くの素人である僕が、如何にしてここに辿りついたか。
決して人様に薦められる手順ではないですが、僕自身が忘れてしまいそうなので、ここに記録しておきます。

Movable TypeからWordPresstへ引っ越す人は多いらしく、ネット上の情報には事欠かなかった。
しかし、問題はそれを僕自身が理解出来るかどうかである。
サーバ技術の知識がゼロの僕には、ほとんどフランス後のようである。
よーするに、.htaccessファイルが何たるかが、全く解っていない状態からのスタートである。
ちになみに現段階の僕の理解では、.htaccessとは、それを置いた以下のディレクトリに対して、ブラウザからのURL参照要求を任意のURLに飛ばしたり、指示自体を書き換えたりすることが出来るテキストファイルである(らしい)。

このようにサーバ技術に関して全くの素人である僕が、如何にしてパーマリンクの維持を行ったか・・・

1.まず、どのような状態にすればパーマリンクを維持した事になるのか、自分なりにイメージしてみた

僕の場合、MTのプログはMTをインストールしいてる同じ階層の「blog」というディレクトリに展開している。
WPはMTと同じ階層にインストールして、同じ階層の「blogwp」というディレクトリに展開する予定である。
この状態で、「blog」と「blogws」以下を同じ構造、同じファイル名にしておけば、最終的なパーマリンクの差異は「blog」と「blogws」だけになる。
つまり、
MT・・・http://march-brown.sakura.ne.jp/blog/2010/08/post-32.php
(現状はこのようになっている)
WP・・・http://march-brown.sakura.ne.jp/blogwp/2010/08/post-32.php
(WPのパーマリンクを、こんなふうにする)
という状態である。
こうしておけば、「blog」と「blogws」が違うだけなので、何とかなりそうな気がした。

2.WPのパーマリンク設定をMPに合わせる。

1.の構想(?)に基づき、WPのパーマリンク設定を「カスタム構造」で

/%year%/%monthnum%/%postname%.php

とした。
WPは、ここで問題の.htaccessファイル書き換えを要求してくる。

.htaccessに記入すべきコードはWPが示してくれるが、どうもうまく行かない。
色々試行錯誤してたが、最終的に下の①から④の方法でうまく出来た。

①miというテキストエディタを使って指示どおりのコードをコピーし、
htaccess.txtというファイル名で保存する。
テキストエンコーディングはUTF-8を指定する。

htaccess.txtをWPでプログを展開する「blogws」というディレクトリにアップロードする。
この時、ftpソフトを「テキストモード」に設定してしてからアップする。

htaccess.txtのファイル名を.htaccessに変更する。

ftpソフトで、.htaccessのパーミッションを「604」設定する。
(もっと適切なのがありそうだが、とりあえず604でうまくいった。)

3.とりあえずデータを移行してみた。

MTからプログのデータをエクスポートし、WPにインポートした。
画像データはフォルダごと「blogws」にコピーし、エクスポートしたテキストファイルの該当部分(画像データのURL)を置換した。このあたりはテキストエディタの置換機能を使えば一発である。

ファイル名も変更されていないようだ。(後に述べるが、実は一部変更されている)
エクスポートしたテキストファイルには、Tagのデータは含まれていたが、これはWPにインポート出来なかった。
このTagデータを移行する方法が、ネット上に色々と紹介されいる。しかし、MTやWPのプログラムを書き換えなければならず、僕には恐ろしくで出来ない。
従って、最終的には全て手作業で移行した。
エクスポートしたテキストファイルを開けておいて、WPの「クイック編集」でコピー・ペーストすると、比較的に効率が良い。

4.「blog」にアクセスしてきたユーザーを、自動的に「blogwp」に誘導する。

この「blog」にアクセスしてきたユーザーを自動的に「blogwp」に誘導する方法が解らない。
強引に双方のフォルダ名を変更してしまおうか、とも思ったが、両方とものデータペースが破壊されてしまいそうである。
悩んでいる様子をTwitterでつぶやいた所、サーバ技術に詳しいツイ友が、

「rewriteするのがのが、両方イキに出来ていいよ」

とアドバイスをくれた。
リライトといえば、アジカンの歌しか思いつかない僕である。
正直に「rewriteする方法も意味も分かりません(・。・?)」と返した所、

「旧パーマリンクを新パーマリンクに書き換えるrewriteルールを.htaccessに書いてはどうか」

と、よりかみ砕いて説明してくれた。
この旧パーマリンクを新パーマリンクに飛ばす方法(リダイレクトというらしい)も、ネット上に数多く紹介されている。
しかし、そのいずれもが僕が理解出来るレベルの話では無かった。
理解できないまま手順だけを真似るとひどい目に遭う事は、今までの経験でよく解っている。
rewriteルールを.htaccessに記入する方法も、WordPressのCodexで紹介されいるが、
これまた、理解出来る内容ではなかった。

rewriteの使用方法をWebで自分なりに調べたが、唯一自分なり理解できたのが、
「ディレクトリの移転」という方法である。

で、冒頭のように.htaccessに記入したのだ。

これで「blog」に展開しているMTの各エントリーを、「blogws」に展開しているエントリーに飛ばす事に、なんとか成功した。

しかし、チェックしてみると過去にTwitterやFacebookから貼られているリンクが、なぜか切れているものがある。
リンクが切れているエントリーのファイル名をよーく見てみると、
MTのファイル名にある「」が、WPでは「_」に化けている(@_@;)
つまり、
http://march-brown.sakura.ne.jp/blog/2010/08/post32.php

https://hibinokizuki.com/2010/08/post_32.php
に変身しているのだ。

仕方がないので、これもWP側で1つづつ手作業で修正した。

以上、長々と書いてきたが結果オーライで現在運営している。

しかし、我流のやり方なのでどこかで不具合が出てくるかも知れない。

サーバにすんごい負荷が掛かっているかもしれない。

もしRSSリーダーで購読して頂いていた読者がいたとすれば、おそらくサヨナラだろう。
そのようなお方は、おそらく居ないだろうけど・・・

Sponsored Links

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください