javaScriputでの質問です。


今、携帯サイトを作っているのですが、
普通のPC用のサイトにアクセスされた際、
PCからアクセスされた場合はそのまま見れて、
携帯からアクセスされて場合は、携帯サイトに飛ぶようにしたいのですが、どうすればいいのでしょうか?

headにonloadの記述で飛ぶような感じだと思うのですが、
よくわかっていないので、書き方を教えていただきたいです、
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/12/29 03:53:57
  • 終了:2011/01/03 08:56:29

ベストアンサー

id:niwa-mikiho No.3

niwa-mikiho回答回数508ベストアンサー獲得回数382010/12/30 08:56:54

ポイント50pt

最近でこそは JavaScript を解釈出来る携帯も現れては居ますが、

サーバーまたはスクリプトで判断してやるのが妥当です。


サーバーで判断する場合は ko8820 さんも書かれている mod_rewrite を使う方法です。

しかし mod_rewrite は全ての HTTP サーバーあるものではなく Apache の設定となります。

また .htaccess が許可されていなかったり、そもそも mod_rewrite が動作してないなどがあるため、

自分の自身で好きに弄れるスクリプトでの処理をオススメします。


携帯か PC かを分けるには


USER-AGENT

IP アドレス (ホスト名 (yahoo.jp など))


で見分ける2つの方法があります。


USER-AGENT は偽装も可能であるため、何が何でも PC には携帯サイトを見せないのであれば

IP アドレスによる判別が良いかと思います。


で、携帯かどうか判別できたら

print "Status: 302 Found\n";

print "Location: http://~\n\n";

で転送します。

id:snoopy_japan

いろいろな方法をありがとうございます、

早速調べてみようと思います、

助かりましたありがとうございます。

2011/01/03 08:55:34

その他の回答(2件)

id:ko8820 No.1

ko8820回答回数1221ベストアンサー獲得回数692010/12/29 06:51:17

ポイント30pt

携帯のブラウザ(スマートフォン除く)は、Javascriptが動作しないんです。

記述しても無視されます。

だから他の方法を使うしかありません。

http://www.systemania.biz/source/keitaihuriwake01.html

htaccessを使うのが簡単です。

id:snoopy_japan

ありがとうございます。

早速調べてみようと思います。

2011/01/03 08:53:00
id:Cherenkov No.2

Cherenkov回答回数1502ベストアンサー獲得回数4922010/12/29 07:42:29

ポイント30pt

通常はCGIや.htaccessなどでuser agentを見て振り分けます。

JavaScriptでの判定だと、JSが動かない携帯や、PCでも無効にしている場合はできません。


それでもJSを使って簡易的に判定する場合はnavigator.userAgentでチェックする方法があります。

例えば、

Detect Mobile Browser - Open source mobile phone detection

(モバイルからのアクセスを判定してリダイレクトするコードを生成するサービス)

このページのDownload ScriptsからJavaScriptかjQueryのコードを見てください。

JavaScriptは最後にリダイレクト先URLを書き換えてからそのまま貼り付けるだけ。

jQueryはif(jQuery.browser.mobile)で判定するようです。

(日本向けに正規表現を追加したほうがいいのかもしれません。)


参考

MOONGIFT : モバイルアクセスか否かを判定する「Detect Mobile Browser」 オープンソース・ソフトウェア/フリーウェアを毎日紹介

id:niwa-mikiho No.3

niwa-mikiho回答回数508ベストアンサー獲得回数382010/12/30 08:56:54ここでベストアンサー

ポイント50pt

最近でこそは JavaScript を解釈出来る携帯も現れては居ますが、

サーバーまたはスクリプトで判断してやるのが妥当です。


サーバーで判断する場合は ko8820 さんも書かれている mod_rewrite を使う方法です。

しかし mod_rewrite は全ての HTTP サーバーあるものではなく Apache の設定となります。

また .htaccess が許可されていなかったり、そもそも mod_rewrite が動作してないなどがあるため、

自分の自身で好きに弄れるスクリプトでの処理をオススメします。


携帯か PC かを分けるには


USER-AGENT

IP アドレス (ホスト名 (yahoo.jp など))


で見分ける2つの方法があります。


USER-AGENT は偽装も可能であるため、何が何でも PC には携帯サイトを見せないのであれば

IP アドレスによる判別が良いかと思います。


で、携帯かどうか判別できたら

print "Status: 302 Found\n";

print "Location: http://~\n\n";

で転送します。

id:snoopy_japan

いろいろな方法をありがとうございます、

早速調べてみようと思います、

助かりましたありがとうございます。

2011/01/03 08:55:34

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

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

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

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

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