• ベストアンサー

ケータイサイトの3社別自動振り分けをしたい!(初心者です)

ケータイ用サイトを運営しています。 目新しいデザインのサイトを作ろうと、通常のHTMLからiモード対応のi-XHTMLを用いたサイトに書き換えたところ、iモード以外のキャリアからアクセスできなくなってしまいました(URLにアクセスするとソースがそのまま表示されてしまう)。この問題はphpやパールによるユーザーエージェントを判別するスクリプトがあれば解消されると色々調べた結果わかったのですが、肝心のそれをどうやって書いたらいいか、またどうやってサイトに組み込めばいいのかがまったくプログラムの知識が初心者レベルなので分かりません。現在使用しているプロバイダーのサーバーがphpやパールに対応しているという前提でどなたか、詳しく説明していただける方助けてください。

  • PHP
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • rightegg
  • ベストアンサー率41% (1357/3236)
回答No.2

こんにちは。 i-XHTMLを使えばそりゃFOMAからしか見えませんよ。 で、肝心の振り分けはユーザーエージェントから振り分けるか、ホストから振り分けるかになります。 振り分けには、perlかphpで書いたスクリプトを「index.cgi」とか「index.php」として設置する事で動作します。 実はJavaScriptにも同じ事は出来るのですが、肝心の携帯用ブラウザが対応しないので今の所はムリなんですよねえ。 で、肝心のスクリプトですが、サンプルを載せておきましょう。 ------------------------------- #!/usr/bin/perl #ユーザーエージェント取得 $uagent = $ENV{'HTTP_USER_AGENT'}; $ua = 99; $docomohtml = 'ドコモ用ページ'; $auhtml = 'au用ページ'; $vodauhtml = 'ボーダ用ページ'; $otherhtml = 'その他用ページ'; if( index($uagent,"DoCoMo") >= 0){ $ua = 0; } elsif( index($uagent,"UP.Browser") >= 0){ $ua = 1; } elsif( index($uagent,"Vodafone") >= 0){ $ua = 2; } else{ $ua = 3; } if( $ua == 0){ print "Location: $docomohtml\n\n"; } elsif( $ua == 1){ print "Location: $auhtml\n\n"; } elsif( $ua == 2){ print "Location: $vodahtml\n\n"; } else{ print "Location: $otherhtml\n\n"; } exit; ----------------------------------- てな感じです。 各ページのパスは適宜代入して下さい。 また、1行目はperlへのパスです。これはCGIの設置について学べばどうすれば良いか分かるでしょう。 これを「index.cgi」として保存して設置すればオーケー。パーティションは755で良いでしょう。 *パーティションもCGIの設置について学べば分かります。 こんな感じです。

lunamaria
質問者

お礼

回答ありがとうございます。CGIの設置については勉強してなんとかわかったのですが動作がうまくいきません。パーミッションの設定等も完璧のはずなんですが…これはHTMLにも同じスクリプトを記述する必要があるんでしょうか?今のところ.cgiで保存したファイルをサーバーの適切な場所にUPしただけなんですが・・・。ちなみにサーバーは自由なCGIの設置が許可されています。1行目のperlへのパスも確認したので間違いはありません。もし他の原因がわかれば教えてください。

その他の回答 (1)

回答No.1

ここにある

参考URL:
http://php.s3.to/tt/tt3.php
lunamaria
質問者

お礼

まったくのド素人でしたのでとても教えていただいたサイトは参考になりました。ありがとうございました。

関連するQ&A

  • ケータイサイトの3社別自動振り分けをしたい!(再質問です)

    CGIやphpによるユーザーエージェントを判別するスクリプトを使用して各キャリア別に自動振り分けをしたいということで以前質問しました。親切な方から下記回答をいただいたんですが、それをどうやってサイトに組み込めばいいのかがプログラムの知識が初心者レベルなので分かりません。CGIの設置の仕方は色々なサイトを見よう見真似でやってみたのですが、実行したら403エラーのような表示が出てメインのURLにアクセスできなくなってしまいました。下記のスクリプトはHTMLにも記述する必要があるんでしょうか?試したのはスクリプトを.cgiというファイルで保存してそれをサーバーにアップしてパーミッションを755に設定しただけです。どなたか、詳しく説明していただける方助けてください。 ------------------------------- #!/usr/bin/perl #ユーザーエージェント取得 $uagent = $ENV{'HTTP_USER_AGENT'}; $ua = 99; $docomohtml = 'ドコモ用ページ'; $auhtml = 'au用ページ'; $vodauhtml = 'ボーダ用ページ'; $otherhtml = 'その他用ページ'; if( index($uagent,"DoCoMo") >= 0){ $ua = 0; } elsif( index($uagent,"UP.Browser") >= 0){ $ua = 1; } elsif( index($uagent,"Vodafone") >= 0){ $ua = 2; } else{ $ua = 3; } if( $ua == 0){ print "Location: $docomohtml\n\n"; } elsif( $ua == 1){ print "Location: $auhtml\n\n"; } elsif( $ua == 2){ print "Location: $vodahtml\n\n"; } else{ print "Location: $otherhtml\n\n"; } exit; -----------------------------------

    • ベストアンサー
    • CGI
  • 携帯サイトXHTMLとHTMLの振り分け設定?

    携帯サイトを作っていますがi-modeで FOMAなど向けのページとしてXHTML、 それ以外用にHTMLで作成したページを設置する場合その振り分け?判別?はどのようにすればいいでしょうか? またそれはHTML・XHTMLレベルより高度なプログラム(PHPやサーバーサイドのプログラムなど)が必要でしょうか? たとえばimode公式メニューの「ファッション」カテゴリの1位「girlswalker」のようなサイトを作りたいのですが これをFOMAで見ると画像がいっぱい、色とりどりのページが表示されますがFOMAではないdocomo携帯で見るとシンプルなつくりのページが表示されます。 こんな感じにしたいのですが・・。 誰か教えていただけると助かります。

  • perlでiモードHTMLを書出す時

    perl初心者です。 基本的なことを教えてください。 万能ではありませんが、perlでブラウザを判別してiモードとezwebに対応したHTMLを出力するスクリプトを作ってみようかと思っています。 そこでiモードHTMLは文字コードがShift_JIS固定と何かで読んだことがありますが、これを書出すスクリプトをShift_JISで記述すると何か問題が起こるものなのでしょうか。 教えてください。

    • ベストアンサー
    • CGI
  • 携帯サイトがiモード・UTF-8でトラブル

    自前サーパで、ごく簡単な携帯用Webページを作ってました。 iモード向けでしたが、3キャリア共通のスクリプトだけ使用していた。 最近そのサーパをWindows機からLinux機に変えました。 その関係で、HTMLファイルの文字コードがシフトJISからUTF-8に変わりました。 今回、あるドコモ携帯の顧客から、文字化けして読めなくなったとクレームを受けました。 私も周囲にも、ドコモ携帯利用者がいません。 そこで、ドコモが提供している i-mode HTML simulator(無印) i-mode HTML simulatorII これらを入手して、HTMLファイルのスクリプトをXHTML(UTF-8定義)仕様に書き変えたりして、いろいろテストしました。 すると、不思議な結果になりました。 i-mode HTML simulator(無印)では、上記URLを開くと、確かに「文字化け」になります。 しかし、XHTML仕様に書き換えた別ページにアクセスすると、「このファイル仕様には対応していない」というエラーになります。 次に、i-mode HTML simulatorIIで、上記URLを開くと、問題なく表示されます。 XHTML仕様に書き換えた別ページにアクセスしても、問題なく表示されます。 この結果からすると、トラブルのあった顧客の携帯はi-mode HTML simulator(無印)相当の機能だと思われます。 i-mode HTML simulator(無印)や問題の顧客の携帯は、XHTML非対応ということでしょうか。 だとすると、問題の顧客の携帯に対応するには、HTMLファイルをシフトJISに戻す以外に方法はないんでしょうか。 なお、ドコモの問合わせ窓口に、メールで詳細質問したんですが、この種の質問には個別に対応していないと断られました。

  • 携帯サイト キャリア別 振り分け

    携帯サイトの3キャリアを別々にphpにて作成しようと思っています。 URLをhttp://www.goo.co.jp/mobile/(携帯サイトのURL)だとします。 mobileのディレクトリ内にindex.php、docomo.php、au.php、softbank.phpを入れておきます。 携帯でhttp://www.goo.co.jp/mobile/index.phpにアクセスした場合、各キャリアで振り分けは行います。 docomoでアクセスした場合、docomo.phpのページが表示されるようにheader("Location:")を使用すると http://www.goo.co.jp/mobile/docomo.phpのページが表示されます。 softbankでアクセスした場合→http://www.goo.co.jp/mobile/softbank.php auでアクセスした場合→http://www.goo.co.jp/mobile/au.php と表示されると思います。 ここまではわかるのですが、ここからが質問です。 docomoでアクセスしてもURLの表示をhttp://www.goo.co.jp/mobile/だけにするにはどうしたらよろしいでしょうか? 表示されるページはmobile/docomo.phpのページだが、表示されるURLはhttp://www.goo.co.jp/mobile/となるようにしたいです。 softabank、auの場合でもmobile/softbank.php、mobile/au.phpを表示しているが、URLの表示はhttp://www.goo.co.jp/mobile/となるようにしたいです。 また、softbankでhttp://www.goo.co.jp/mobile/docomo.phpを直接入力してもsoftbank.phpが表示されるようにするにはどのようにプログラムを組めばよろしいでしょうか? 説明がしにくいため、質問内容がわからないと思いますが、記述方法又は参考サイトをご存じの方はご教授お願い致します。

    • ベストアンサー
    • PHP
  • 携帯サイトでランキング運営

    http://dropout.sakura.ne.jp/ このようなランキングを運営したいのですがスクリプトなどはわかりますか? 専門ランキングでHTML編集可、またTHE ROOMさんのスクリプトはEZに対応していないのでEZ対応のスクリプトを探しています。よろしくお願いします。 ※Perl以外でも

  • 携帯向けサイトのjava言語の埋め込みについて

    Docomo、vodafone、auの3キャリアでそれぞれのHPを 作ろうと思っています。 色々、資料は集めて基本的な知識は得ているのですが、 例えば、javaは全てのキャリアに対応するのか、という記述が どこを探しても見つかりません。 javaやPHPを使って動的なHPを作りたいと思いますので、 javaとPHPが分け隔てなくどのキャリアでも対応できるのか、出来ないのか 教えてもらえませんか? 確か、javascriptは対応していないという記述は見つけました。 Javaも同様でしょうか? また、HTMLとXHTMLのように各キャリアごとに言語が違ったりするのでしょうか? お願い致します。

    • ベストアンサー
    • Java
  • 端末ごとのページ振り分けCGIについて

    携帯3キャリア対応のサイトを作ってます。 ユーザーズエージェントを使ってPCからのアクセスをコントロールするのも兼ねて、それぞれのページへ飛ばすperlスクリプトをお教え頂きたいのですが、どなたかお詳しい方ご教授よろしくお願い致します。

    • ベストアンサー
    • CGI
  • pcと携帯の自動振り分け

    http://xxx.xxx.jp/にアクセスしブラウザがパソコンであれば index.htmlを表示し、携帯であれば機種判別し imodeであればhttp://xxx.xxx.jp/i/index.html auであればhttp://xxx.xxx.jp/au/index.html voadfonであればhttp://xxx.xxx.jp/v/index.html と自動で振り分けしたいのです。 pcと携帯を判別して自動で振り分けするものはみつかるのですが 携帯をさらに機種判別して振り分けするという例が 見当たりませんでした。どのようにわけるのでしょうか? フリーでcgiかphpどちらでも構いませんので参考になる サイトがありましたら教えて下さい。 サーバーは.htaccess使用可能です。

  • PCサイトと携帯サイトを振り分けたい(初心者です)

    携帯サイトを運営しているのですが、最近 PCからユーザーエージェントを携帯と偽って アクセスする人が後を絶ちません。 そこで今回、ユーザーエージェントではなく、ホスト の判定でPCサイトと携帯サイトを振り分けたいと 思っていますが、良いCGIがあれば教えてください。 よろしくお願いいたします。

    • 締切済み
    • CGI