« 7/7 さよならペンタ君 | メイン | 絶滅危惧種「ボディコン」を目撃 »

2006年07月08日

携帯からのアクセスをmt4i.cgiに振り分ける [MovableType]

携帯からのアクセス振り分けにはhtaccessによるURL書き換え(mod_rewrite使用)か、
Perl/Javascript/PHP等で判別→ページ移動がポピュラーだろう。
うちではPHP化したときにすでにhtaccessでごりごりリダイレクトかましてるので、
ここにさらに携帯用をいれるとすげー面倒くさい。
index.cgiだけならともかく、個別エントリまでとなるとやってられん。
というわけで、とりあえずindex.cgiの先頭でPHPによるUser-Agent判別を行い、
携帯のUAを持つ場合はmt4i.cgiへリダイレクトすることにした。

keitai-index.jpg

mt4i.cgiがインストール済みであり、
MovableTypeがすでにPHP化されているなら、
先頭行の#!/usr/local/bin/phpの次に下記のような判別/リダイレクトルーチンをいれるだけでOK。

<?
$ua = $_SERVER["HTTP_USER_AGENT"];
if(ereg("DoCoMo",$ua)){
header("Location: http://delta-j.web.infoseek.co.jp/cgi-bin/mt/mt4i.cgi");
exit;
}elseif(ereg("J-PHONE",$ua)){
header("Location: http://delta-j.web.infoseek.co.jp/cgi-bin/mt/mt4i.cgi");
exit;
}elseif(ereg("UP\.Browser",$ua)){
header("Location: http://delta-j.web.infoseek.co.jp/cgi-bin/mt/mt4i.cgi");
exit;
}elseif(ereg("Vodafone",$ua)){
header("Location: http://delta-j.web.infoseek.co.jp/cgi-bin/mt/mt4i.cgi");
exit;
}elseif(ereg("KDDI",$ua)){
header("Location: http://delta-j.web.infoseek.co.jp/cgi-bin/mt/mt4i.cgi");
exit;
}else{
}
?>
UAの判定はDoCoMo / KDDI / Vodafone / J-PHONE だけで足りるような希ガス。

携帯からHPルートにアクセスしたときのみ、自動的にmt4i.cgiへリダイレクトされるが、
この部分をそれぞれのアーカイブテンプレートの先頭につっこめば、
どこからどう携帯でアクセスされてもmt4i.cgiが表示されることになる。
ま、それもちょっとウザイかなと思ったし、
個別エントリを携帯からダイレクトに見たい酔狂人もいるかもしれないので、
とりあえずindex.cgiだけの措置にしてある。


by Daryl 2006年07月08日 10:36 | Permalink

トラックバック

このエントリーのトラックバックURL:
http://delta-j.web.infoseek.co.jp/cgi-bin/mt/mt-tb.cgi/784

コメント

携帯からのアクセス振り分けに挑戦したいのですが、PHPにしてない場合はどーなるのでしょうか?

by ひで : 2007年08月27日 16:07

index.html内でJavascript動かしてブラウザの・・・・と思ったら携帯ではJavascript動きませんね。。。
CGI化してPerlで条件分岐作るか、.あるいはhtaccessで振り分けるかしかないと思います。

by Daryl : 2007年08月27日 17:46

コメントしてください




保存しますか?