- ベストアンサー
ケータイサイトの3社別自動振り分けをしたい!(初心者です)
ケータイ用サイトを運営しています。 目新しいデザインのサイトを作ろうと、通常のHTMLからiモード対応のi-XHTMLを用いたサイトに書き換えたところ、iモード以外のキャリアからアクセスできなくなってしまいました(URLにアクセスするとソースがそのまま表示されてしまう)。この問題はphpやパールによるユーザーエージェントを判別するスクリプトがあれば解消されると色々調べた結果わかったのですが、肝心のそれをどうやって書いたらいいか、またどうやってサイトに組み込めばいいのかがまったくプログラムの知識が初心者レベルなので分かりません。現在使用しているプロバイダーのサーバーがphpやパールに対応しているという前提でどなたか、詳しく説明していただける方助けてください。
- みんなの回答 (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の設置について学べば分かります。 こんな感じです。
その他の回答 (1)
- Special_Nuts
- ベストアンサー率37% (36/95)
お礼
回答ありがとうございます。CGIの設置については勉強してなんとかわかったのですが動作がうまくいきません。パーミッションの設定等も完璧のはずなんですが…これはHTMLにも同じスクリプトを記述する必要があるんでしょうか?今のところ.cgiで保存したファイルをサーバーの適切な場所にUPしただけなんですが・・・。ちなみにサーバーは自由なCGIの設置が許可されています。1行目のperlへのパスも確認したので間違いはありません。もし他の原因がわかれば教えてください。