http://example.com/ にアクセスさせて、自動的に、
・PCブラウザからのアクセスか、携帯電話からのアクセスか
・使用言語は何か
で、振り分けたいです。
例えば、
PCブラウザからのアクセスで、ブラウザに設定されている言語が日本語であれば、
http://example.com/c/jp/
に飛ばすとか。
一番スマートな方法は何でしょうか? ご教示願います。
ウェブサイトで使用できる言語によってちがいますが、たとえばPHPでしたら、
最初にアクセスしたページ(http://example.com/index.php)で、
下のように USER_AGENT を取得してブラウザや携帯電話のキャリアを判別します。
$user_agent = $_SERVER['HTTP_USER_AGENT'];
PEAR のライブラリを利用すると便利です。
(参考) Net_UserAgent_Mobile
http://pear.php.net/package/Net_UserAgent_Mobile
ユーザの言語は、ブラウザにセットされている言語を下のように取得します。
$browser_languages = explode(',', getenv('HTTP_ACCEPT_LANGUAGE'));
判定後に、振り分け先URLを決めて、下のようにリダイレクトします。
header('Location: ' . $url);
PHPではいかがでしょうか。
$header = getallheaders();
$agent = $header["User-Agent"] ;
if(mb_ereg("DoCoMo",$agent)){
header("Location: http://xxxxxxx.com/m/index.html");
exit;
}
paroさんがおっしゃっているようにサーバー側で識別するのがスマートです。
プログラムの記述方法は言語によって多少ことなりますが、似たり寄ったりですので今回は省略します。
ここからは蛇足ですが、私だったら上記の判定結果に加えてアクセスしてきたクライアントのIPアドレスを判定基準に加えます。
理由は(クライアント側でjavascript等使って判別しないのと同じ理由)、useragent、acceptlanguage共にユーザー側で書き換え可能だからです。firefoxだったら以下のようなアドオンを追加するだけで可能です。
https://addons.mozilla.org/ja/firefox/addon/8519
https://addons.mozilla.org/ja/firefox/addon/59
また以下のページにあるような検索エンジン対応も考えて、モバイル用のページ:PC用のページをなるべく1:1になるように考えます。
http://googlewebmastercentral-ja.blogspot.com/2009/10/blog-post....
コメント(0件)