ウェブサイトを運営しています。


http://example.com/ にアクセスさせて、自動的に、
・PCブラウザからのアクセスか、携帯電話からのアクセスか
・使用言語は何か
で、振り分けたいです。

例えば、
PCブラウザからのアクセスで、ブラウザに設定されている言語が日本語であれば、
http://example.com/c/jp/
に飛ばすとか。

一番スマートな方法は何でしょうか? ご教示願います。

回答の条件
  • 1人2回まで
  • 登録:2009/11/06 19:43:24
  • 終了:2009/11/13 19:45:02

回答(3件)

id:palo No.1

palo回答回数124ベストアンサー獲得回数142009/11/06 21:11:42

ポイント27pt

ウェブサイトで使用できる言語によってちがいますが、たとえば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);

id:riricks No.2

riricks回答回数12ベストアンサー獲得回数12009/11/07 00:40:35

ポイント27pt

PHPではいかがでしょうか。

$header = getallheaders();

$agent = $header["User-Agent"] ;

if(mb_ereg("DoCoMo",$agent)){

header("Location: http://xxxxxxx.com/m/index.html");

exit;

}

id:cuspos No.3

cuspos回答回数49ベストアンサー獲得回数102009/11/07 06:07:57

ポイント26pt

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....

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません