Movable Type MT4iで携帯版サイトを自動生成

「MT4i」とはMovableTypeで作成しているサイトを携帯版のサイトに自動変換してくれるプログラムです。携帯用のサイトとして必要な部分を適切に表示してくれますのでわざわざ携帯版のサイトを用意する必要が無く携帯からのサイト観覧が可能になります。文字数がオーバーしたりしてうまく表示されないなんてことがなくなるわけです。

下準備

「MT4i」を入手します。

http://www.hazama.nu/pukiwiki/index.php?MT4i

から最新版をダウンロードします。今回使用しているバージョンは2.25です。

ダウンロードしたファイルを解凍し、「mt4i.cgi」と「mt4imgr.cgi」の1行目のPerlパス「#!/usr/bin/perl」を環境に応じて変更します。「mt4imgr.cgi」の9行目の「dummypassword」の部分を自分用の任意のパスワードに書き換えます。

ディレクトリの作成、設置

携帯からアクセスする時に使うディレクトリを作成します。
例えば「http://xxx.yunayuna.net/」の下にiモードの「i」とかモバイルの「m」とか「ez」とかを作成。
「http://xxx.yunayuna.net/i/」でアクセスできるようにします。
(携帯から使うので名前は短いほうが良いかと思います)

その作成した「i」のフォルダに「mt4i.cgi」、「mt4imgr.cgi」、「mt4ilib」を設置します。

mt4i設定

設置したらブラウザから「mt4imgr.cgi」にアクセス。
例 「http://xxx.yunayuna.net/i/mt4imgr.cgi」
先ほど設定したパスワードを入力してログインします。

先頭に必須設定項目が2つあるかと思います。
「MT_DIR - MTホームディレクトリ」
Movable Type をインストールしたディレクトリ(mt.cgiのある場所)を、絶対パスで指定。

「Blog_ID - Movable Type 上で使用しているBlog固有のID」
Movable Typeで作成したブログごとに割り振られる番号を指定します。
Blogが1つの場合は「1」になっている場合がほとんどですが、サイトを作り直すため削除とかしていると「2」とか「3」になっていることもあるので確認したほうがいいかと...
簡単に確認するにはBlogの記事を作成するときmt.cgiにログインしますよね。
そのときにBlog一覧がでてきますがそのBlogを右クリックしてプロパティを見ればURLの部分にIDがあるので判断できるかと思います。

下の設定はそれぞれ好みで設定すれば良いかと思います。必要な設定項目を設定して保存します。

ブラウザから「mt4i.cgi」にアクセスして携帯版のページが表示できれば完了です。
例 「http://xxx.yunayuna.net/i/mt4i.cgi」

index.cgiに変更

「http://xxx.yunayuna.net/i/mt4i.cgi」にアクセスすれば携帯版のサイトとして表示されるようになったわけですがアドレスが長いです。
なので短くして
「http://xxx.yunayuna.net/i/」
でアクセスできるようにします。

「mt4imgr.cgi」にログインします。
真ん中くらいに
「MyName - MT4i本体のファイル名(index.cgiなどに変更したい人用)」
という項目がありますのでここを
「index.cgi」
に変更し保存します。

今度は「mt4i.cgi」のファイル本体の名前を
「index.cgi」に変更して保存します。
ファイル名をindex.cgiとすることで「http://xxx.yunayuna.net/i/」とアクセスしてもWebサーバが自動的にindexファイルを探し「index.cgi」を表示するようになります。

表示できない場合はWebサーバの設定を確認してみてください。
apache2であれば「httpd.conf」の322行目あたりに「DirectoryIndex」があります。この項目に
「index.cgi」があるか確認します。無ければ追記します。
詳しくはhttp://www.yunayuna.net/server/apache2cgi.htmlを参照。

携帯サイトへの自動振り分け

「http://xxx.yunayuna.net/i/」にアクセスすることで携帯サイトを表示できるようになったわけですが、更にもう一歩進んだ技を使おうかと思います。
「http://xxx.yunayuna.net/」へのアクセスをパソコンからのアクセスと携帯からのアクセスとを自動で振り分けたいと思います。
簡単にいうと「http://xxx.yunayuna.net/」に携帯からアクセスがあった場合に
「http://xxx.yunayuna.net/i/」
にリダイレクトするようにするだけなんですが...
「.htaccess」を使うのでWebサーバにApacheを使っている場合のみ有効な技となりますが。

「.htaccess」に以下を記述。

RewriteCond %{HTTP_USER_AGENT} DoCoMo
RewriteRule ^$ http://xxx.yunayuna.net/i/index.cgi [R]

RewriteCond %{HTTP_USER_AGENT} J-PHONE
RewriteRule ^$ http://xxx.yunayuna.net/i/index.cgi [R]

RewriteCond %{HTTP_USER_AGENT} UP.Browser
RewriteRule ^$ http://xxx.yunayuna.net/i/index.cgi [R]

RewriteCond %{HTTP_USER_AGENT} Vodafone
RewriteRule ^$ http://xxx.yunayuna.net/i/index.cgi [R]

RewriteCond %{HTTP_USER_AGENT} SoftBank
RewriteRule ^$ http://xxx.yunayuna.net/i/index.cgi [R]

RewriteCond %{HTTP_USER_AGENT} KDDI
RewriteRule ^$ http://xxx.yunayuna.net/i/index.cgi [R]

上記では一応各キャリアごとに振り分けをする設定になっています。
(全て「i」に振ってますが)
キャリアごと別のサイトに振り分ける場合はそれぞれのURLに変更していただければよろしいかと。
「mt4i」はiモードを前提とした仕様となっていますがその他のキャリアにも考慮して作られているということなのでキャリア関係なしに全て同じでも良いかと思います。

「.htaccess」の詳細はhttp://www.yunayuna.net/server/apache2htaccess.htmlを参照。


これで携帯からの「http://xxx.yunayuna.net/」へのアクセスは自動的に携帯サイトが表示されるようになります。           HOME           先頭▲