MT4iを使っていた人が携帯サイトをURLごとWordPressに移行する方法

2014/12/21WordPressに関する記事mt4i, テクニック

ずっと悩んでいたことが @river24 に助けてもらって解決しましたので、これからMT→WPを目指す方のためにもメモしておきます。MT4iの引数付きURLと、WPのURLをきれいに1対1対応させる方法です。

MT4iのURLをWPにリダイレクトする

今回の移行にあたって、MT4iのURLは捨てようと思っておりました。というのも、MT4iのURLは

  • http://airoplane.net/m/index.cgi?cat=58&mode=individual&eid=4000

このように、カテゴリやらモードやらエントリIDやらの引数が付いているもので、今回のWPのようにエントリID以外のURLをもつページとの間で1対1対応はできない、と思っていたからです。

しかし、実は他のプラグインを導入していく中で、WPには

  • http://airoplane.net/?p=xxxx

というエントリIDによるURLが有効になっていると気がつきました。このURLにアクセスすると、そのエントリIDをもつエントリに勝手にリダイレクトされるのです。つまり、MT4iのURLからエントリIDが抽出できれば、転送することが可能になる…!というわけです。もちろん前提条件として、WPを携帯対応にしておく必要がありますよ!うちはKtai Style を使っております

.htaccessを使う

今回はレンタルサーバ運用であったため、方法には .htaccess を使いました。当初、RedirectMatch を用いて引数を抽出しようと試みていたのですが、どうもうまくいきません。そこでTwitterにて助けを求めたところ、@river24 が助け船を出してくれました。そしていろいろなやりとりの後、次の構文でキレイに転送が可能であるとの答えをいただけたのです!ちなみに以下は、/mt4i/ フォルダに MT4i がインストールされている時の書き方です。

<IfModule mod_rewrite.c>

RewriteEngine OnRewriteBase /mt4i/

RewriteCond %{QUERY_STRING} eid=([0-9]+)

RewriteRule . http://airoplane.net/?p=%1

</IfModule>

@river24 いわく、「RedirectMatchで一致可能なのは,クエリパラメタより前まで」ということで、これは知らなかったので本当に勉強になりました。そして助かりました!

例えば次のリンクを踏んでみていただけると、対応する現WPのURLに転送されると思います。いやあ、これはスマートだ…。

http://airoplane.net/m/index.cgi?cat=117&mode=individual&eid=4829

http://airoplane.net/?p=4829

ほんとうにありがとうございました!これでウェブマスターツールに出ているエラーも全て対応が完了したはず!インデックスよ、戻れw
PHP 逆引きレシピ (PROGRAMMER’S RECiPE)
4798119865