第31回:携帯端末とパソコンでページを振り分ける
いまさらな話題ですが、第28回でMovable TypeをMoblog に対応させる 方法を説明したのをついでに、今回は携帯端末とパソコンで表示させるページを振り分ける方法について説明します。Movable Typeのカスタマイズとは違いますが、数行程度のPHPの記述で携帯端末とパソコンを簡単に振り分ける事ができるので是非、実践しておきましょう。
なお、携帯とパソコンを振り分けるには、いくつかの方法があり、各携帯会社ごとのユーザーエージェントで振り分けたり、ホスト名や IPアドレスで振り分けたりする方法が考えられます。ここでは、より簡単に実現できる ユーザーエージェントで振り分ける方法について説明していきます。ホスト名やIPアドレスで振り分けた方が、ユーザーエージェントで振り分ける場合に比べて、より厳密に振り分けることが可能ですが、各携帯会社ごとのホスト名やIPアドレスを全て調査しなければならないので、やや面倒です。
ユーザーエージェントで振り分ける場合には、ユーザーエージェントが偽装されてしまえば、パソコンからでも携帯専用ページが簡単に見れてしまいますが、個人サイトならば、この方法でも十分でしょう。
当記事は、以下のサイト様を参考にさせて頂きました。どうもありがとうございました。
http://specters.net/cgipon/labo/c_dist.html
http://hdml.jp/wap/cast.html
それでは、さっそくページを振り分けるためのソースを以下に記述します。但し、以下ソースは、もっとも単純な振り分け例なので、機種のバージョンごとに、より複雑に判別したい場合には、以下ソースをさらに細かく条件分岐させる必要があります。
例えば、DoCoMo なら DoCoMo/1.0(DoCoMo/1) と DoCoMo/2.0(DoCoMo/2)を、au ならば WAP2.0機(KDDI-)とHDML機(UP.Brower)を、Vodafone ならば、J-Phone端末(J-PHONE)とVodafone端末(Vodafone)、モトローラ社製端末(MOT)を振り分けるといった具合にです。
$ua = $_SERVER["HTTP_USER_AGENT"];
if(ereg("DoCoMo",$ua)){
header("Location: http://win.kororo.jp/docomo/mt4i.cgi");
}
elseif(ereg("J-PHONE|Vodafone|MOT",$ua)){
header("Location: http://win.kororo.jp/vodafone/mt4i.cgi");
}
elseif(ereg("KDDI|UP\.Browser",$ua)){
header("Location: http://win.kororo.jp/ezweb/mt4i.cgi");
}
elseif(ereg("PDXGW",$ua)){
header("Location: http://win.kororo.jp/ddi/mt4i.cgi");
}
elseif(ereg("ASTEL",$ua)){
header("Location: http://win.kororo.jp/astel/mt4i.cgi");
}
?>
上記ソースを、MT管理画面を開いて「テンプレート」→「メインページ」の最上部にコピー&ペーストし、保存&再構築します。これで、ブログのトップページにアクセスした場合に、パソコンならパソコン用のアドレスに、携帯なら携帯用のアドレスに自動的に振り分けられるようになります。んー便利ですね。
以上、第31回は終了です。
■参考:各携帯会社のユーザーエージェント
DoCoMo
http://www.nttdocomo.co.jp/service/imode/make/content/spec/useragent/
KDDI
http://www.au.kddi.com/ezfactory/tec/spec/4_4.html
Vodafone
http://developers.vodafone.jp/dp/tech_svc/info/useragent.php