タグ : 振り分け

MTOSサイトで携帯対応まとめ(5)~自動振り分け

前回というより3回くらい前の続きです。

PEARのライブラリ「Net_User_Agent_Mobile」をインストールしたところで、振り分けのためのphpファイルを作成します。

作業としては、ドコモ・au・Softbank、それぞれ文字コードを一番適正なものに設定してやること、そして、ドコモでCSSを使うためにHTTPヘッダーの「Context-Type」を置き換えてやることです。

ここに関してはこちらのページを参考にさせていただきました。

文字コードはドコモとauをShift-JIS、SoftbankをUTF-8に設定します。

リンク先のページにある通りにinit.phpを作成し、各携帯用テンプレートから呼び出せるようにしておきます。この部分はまた後述します。

また、携帯でPC用ページにたどり着いてしまった時に自動で携帯用ページに誘導する設定ファイルも作りました。

これは参考までにコードを書いておきます。

<?php
// Net_UserAgent_Mobile読み込み
require_once ‘Net/UserAgent/Mobile.php';
$userAgent = Net_UserAgent_Mobile::singleton();

// キャリアごとの設定
if ($userAgent->isDoCoMo()) {
header(‘location:m/index.php’);
} elseif ($userAgent->isEZweb()) {
header(‘location:m/index.php’);
} elseif ($userAgent->isSoftBank()) {
header(‘location:m/index.php’);
}
?>

このphpをカスタムインデックステンプレートとして保存して、PC用のすべてのページから呼び出すようにしました。

というのも、PC用のページは基本すべてウェブサイト、若しくはブログのルート直下にあるのため、携帯はすべて「m/index.php」に飛ばす設定にしておけば迷子にはならないことになります。

ただ、アーカイブのURLをもっと複雑にしてある場合は、いっそのこと、全部サイトトップに飛ばすでも良いかもしれません。それには、locationの後にサイトトップの絶対URLを入れてやればOKです。

なお、 「header(‘location:xxx.php’);」の記述は、その前にhtmlのタグ等があると動作しないので、このphpの読み込みは、テンプレートの一番上に持ってくる必要があります。

とにかく、PCページにたどり着いてパケットを大量に受信した上に表示できない、という現象はこれで避けられると思います。

ブログランキング・にほんブログ村へ
にほんブログ村

Twitt