こんにちわ。
現在、携帯(iモード)用のサイトも作成しようと考えています。
そこで、いろいろページ検索していると、PCでアクセスすればPC用ページへ、iモードからアクセスすればiモード用のページへ飛ぶといったサイトを見かけました。でも、それをどのようにやっているかがわかりません。
もしご存知のかたがいらっしゃいましたら、できるだけ具体的に教えていただけないでしょうか。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

今のお話の中では、処理だけを行うのがindex.cgiとお考え頂いて結構です。




もちろん、色々な方法があるので、1つのソースファイルで分岐からHTMLの吐き出しまで可能です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
いろいろお手数おかけいたしました。
なんとかやってみます。また、わからないことがあれば、おうかがいするかもしれませんが、そのときはまたよろしくお願いいたします。

お礼日時:2003/09/22 18:15

え~っとですね、イメージでいうとこんな感じです。


(1)index.cgi 入り口(分岐用)
(2)pc.html  パソコン用
(3)docomo.html ドコモ用
(4)jphone.html JPHONE用
と4つ準備します。
index.cgiには分岐させるプログラムを書きます。言語は、パールかPHPがいいでしょう。もちろん、お使いのサーバーがどちらかに対応している必要がありますが。
index.cgiの中身を日本語で書くと以下のイメージになります。

if ユーザーエージェントが docomo then
 ロケーションリダイレクト docomo.html
elseif ユーザーエージェントが jphone then
 ロケーションリダイレクト jphone.html
else
 ロケーションリダイレクト pc.html
end if

って感じになりますね。

昔PERLで書いた実際のソースです。
($agent,$gomi) = split(/\//,$ENV{'HTTP_USER_AGENT'},2);

if($agent eq 'DoCoMo') {
print "Location: http://www.a.com/i.html\n\n";
} elsif ($agent eq 'J-PHONE') {
print "Location: http://www.a.com/j.html\n\n";
} else {
print "Location: http://www.a.com/pc.html\n\n";
}

どれかのページにアクセスがきたというよりも、入り口をひとつに指定して、そっからユーザーエージェントに応じて分岐してあげると言った流れになります。
http://www.a.com/index.cgi でアクセスしてきたら、上記のスクリプトがユーザーエージェントを判別して飛ばしてくれるといった感じです。たとえばドコモならhttp://www.a.com/index.cgihttp://www.a.com/i.htmlといったように読み替えてくれるのです・・(表現が悪いかな?)

そのページとは・・・?というのは、index.cgiにあたると思います。

この回答への補足

丁寧に説明いただきまして、ありがとうございます。
確認したいのですが、index.cgiのページは画面表示はなく、処理のみを行うと考えてよろしいのでしょうか。
何度も申し訳ありません。

補足日時:2003/09/22 17:08
    • good
    • 0

このアクセスは「IE」ですとか「ドコモ」ですと言った内容の情報が入っている環境変数があります。

パールやPHP等ではそれを取得することができるんです。
そういった内容を取得して、その内容に応じて目的のHTML等に飛ばしてやればいいのです。
僕が昔分岐プログラムを作った時、非常に勉強になったサイトが参考URLです。
一度読んで見てください。

参考URL:http://www.futomi.com/subroutine/ua.html

この回答への補足

ありがとうございます。参考にさせていただきます。
そこで、ひとつ教えていただきたいのですが、ブラウザ判定のルーチンはどこに記述すればよろしいのでしょうか。
ブラウザごとに違うページを用意したとして、どれかのページにアクセスに来たときに判断するわけですよね?そのページとは・・・?デフォルトのIE用のページと考えてよろしいのでしょうか?
言ってる意味をわかっていただけるか、少し心配ですけど。よろしくお願いします。

補足日時:2003/09/22 14:40
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング