携帯からのアクセス振り分け

ユーザー環境に応じて異なるページを表示する方法

携帯とPCとでは、画面の大きさや操作方法がかなり違うので、同じページで対応するのは大変ですね。 ここでは、PHPを利用して、ケータイかパソコンかを判別し、振り分けする方法を解説しています。

リモート IP アドレスによる振り分け

アクセスしてきた端末のリモート IP を調べて、IP アドレスによって、携帯かどうかを判定することができます。 NTT DoCoMo の場合は210.153.84.0/24 または210.136.161.0/24なので(2006年2月のデータです)、接続元の IP がこれらに該当する場合は、携帯用ページにジャンプさせるようにすることができます。 (substr_count は文字列が出現した回数を数える関数です。)

$remoteip = $_SERVER['REMOTE_ADDR'] ;
$pos1 = substr_count($remoteip,"210.153.84.");
$pos2 = substr_count($remoteip,"210.136.161.");
if ($pos1 or $pos2) {
  header("Location: https://php-web.net/");
  exit;
  }

上のソースを、HTMLファイルに書くと、DoCoMo の携帯からアクセスを自動的にhttps://php-web.net/ に振り分けします。 (URLは例です。各自の環境で変更してください。)

ただし、この方法だと、ソフトバンクAU(Ezweb)、それぞれ10以上の条件判定が必要になります。 また、基地局の IP アドレスに変更や追加があった場合、そのたびに修正しないといけません。

リモートIPをチェックする場合、.htaccessを利用することもできます。 .htaccessを利用する方法は、.htaccessでアクセス制限をごらんください。

ユーザーエージェントによる振り分け

IP アドレスによる振り分けの他にも、携帯端末毎に利用しているOSやブラウザが異なることを利用して携帯とPCの振り分けができます。 こちらのほうが、手軽に利用できてよいでしょう。 (一部のブラウザでユーザーエージェント偽装が可能です。 ただし偽装状態でのアクセスはスクリプトの動作確認などに限定してください。)

NTTDoCoMoは DoCoMo、ソフトバンクはSoftBank(一部の端末ではMOTvodafoneJ-PHONEが使われています)、AUは UP.Browser という文字列を含むので、これを利用して振り分けることにしましょう。

$UA = $_SERVER{'HTTP_USER_AGENT'};
if (substr_count($UA,"DoCoMo")) {
  header("Location: https://php-web.net/docomo.html");
  exit;
} else if (substr_count($UA,"SoftBank")) {
  header("Location: https://php-web.net/softbank.html");
  exit;
} else if (substr_count($UA,"vodafone")) {
  header("Location: https://php-web.net/softbank.html");
  exit;
} else if (substr_count($UA,"UP.Browser")) {
  header("Location: https://php-web.net/au.html");
  exit;
}

上のように書いておくと、ユーザー端末毎に異なるページへジャンプさせることができます。

PHP についての解説は、PHPでWEB作成をごらんください。

サーバーの振り分け機能利用

携帯振分設定は、プログラミングの知識が必要になります。 サーバーによっては、携帯自動振分機能(シングルURLと呼ぶようです)を用意しているので、自分で設定するのは難しいという人にお薦めです。

ケータイサイトで稼ぐには、アフィリエイトで稼ぐ方法携帯アフィリエイトをごらんください。

新着記事
人気記事ベスト3
全てのホームページ製作者に
アフィリエイトで稼ぐ方法
サーチエンジン最適化
携帯サイトの作り方
レンタルサーバの選び方
ホームページ作成ソフト
パソコン便利グッズ