• ベストアンサー

携帯別サイトの作り方

携帯のサイトを作りたいと思うのですが、そのキャリアが日本で、Docomo、Au、TU-KA、ボーダフォンとありますね。 これを、識別して、それぞれに合わせた、ページを表示する方法を探しています。 yahooなどでも、勝手に、携帯用(私はドコモ)のものが表示されますが、あれはどうやって、処理してるのですか? どなたか、教えて下さい。 ヨロシクお願いします。

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

  • ベストアンサー
回答No.3

#2 です。 一切CGIを使わない(&使いたくない)のであれば 以下のような.htaccessでいいとおもいます。 ただし、RewriteEngine必須です。 RewriteCond %{HTTP_USER_AGENT} ^UP\.Browser RewriteRule ^(.*)\.hdml$ /wap1/$1.hdml RewriteCond %{HTTP_USER_AGENT} ^KDDI RewriteRule ^(.*)\.html$ /wap2/$1.html RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^(.*)\.html$ /imode/$1.html RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} voda [OR] RewriteCond %{HTTP_USER_AGENT} Voda RewriteRule ^(.*)\.html$ /jphone/$1.html RewriteCond %{HTTP_USER_AGENT} ^UP\.Browser RewriteRule ^$ /wap1/index.hdml RewriteCond %{HTTP_USER_AGENT} ^KDDI RewriteRule ^$ /wap2/index.html RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ /imode/index.html RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} voda [OR] RewriteCond %{HTTP_USER_AGENT} Voda RewriteRule ^$ /jphone/index.html AddType text/x-hdml;charset=Shift_JIS .hdml PC用は、/ に置く imode用は /imode に置く jphone/vodafone用は /jphone に置く (901シリーズはwap2ですが、こちらで認識されます) WAP2(au/tu-ka)用は、/wap2 に置く WAP1(au/tu-ka)用は、/wap1に置き、index.hdmlをトップページにする

groovyreality
質問者

お礼

ありがとうございます。 現在、お金をかけない為、無料レンタルサーバーを利用していますが、これが、可能かどうか確認してみます。 詳細まで、ありがとうございました。

その他の回答 (3)

回答No.4

現在、お金をかけない為、無料レンタルサーバーを利用していますが、 無料レンタルサーバーですと、ほとんどが制限が厳しかったり等で不可能な場合があります。 広告バナーが携帯にとっては巨大なものもありますし・・・ できるとしたら、xrea.com ぐらいでしょうか? それとは別に、携帯に専門に対応されている無料レンタルサーバーが良いかと思います。 http://ip.tosp.co.jp/

回答No.2

すごい長い回答ですが・・・ これをするには、CGI等の知識が必要になります。 1つは、Apacheに使われている RewriteEngineを使う方法です。 環境変数 HTTP_USER_AGENTごとに振り替えます ただし、RewriteEngineが有効でないサーバーでは使えません。 .htaccessの中身 RewriteCond %{HTTP_USER_AGENT} ^UP\.Browser [OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI [OR] RewriteCond %{HTTP_USER_AGENT} DoCoMo [OR] RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} voda [OR] RewriteCond %{HTTP_USER_AGENT} Voda RewriteRule ^(.*)\.html$ /cgi-bin/view.cgi?$1.html [T=application/x-httpd-cgi] RewriteCond %{HTTP_USER_AGENT} ^UP\.Browser [OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI [OR] RewriteCond %{HTTP_USER_AGENT} ^Pixo-Browser [OR] RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} voda [OR] RewriteCond %{HTTP_USER_AGENT} Voda RewriteRule ^$ /cgi-bin/view.cgi?index.html [T=application/x-httpd-cgi] この例の場合、PC用は普通に /index.html なのですが 携帯のものは、/cgi-bin/view.cgi というwrapperを経由して表示します。 もしくは、すべてCGI仕掛けで良いのであれば、 index.cgi だけを作り、それをwrapperとして使います。 例) #!/usr/bin/perl $htdocs="./pc"; $index="index.html"; $mime="text/html"; if($ENV{HTTP_USER_AGENT}=~/^KDDI/) {  $htdocs="./wap2"; } elsif($ENV{HTTP_USER_AGENT}=~/^UP\.Browser/) {  $htdocs="./wap1";  $index="index.hdml";  $mime="text/x-hdml"; } elsif($ENV{HTTP_USER_AGENT}=~/^DoCoMo/) {  $htdocs="./imode"; } elsif($ENV{HTTP_USER_AGENT}=/~(J-PHONE|Voda)/) {  $htdocs="./vodafone"; } if($ENV{QUERY_STRING} eq '') {  $file=$index; } else {  $file=$ENV{QUERY_STRING}; } if(open(R,"$htdocs/$file")) {  print "Content-type: $mime\n\n";  foreach(<R>) {   print "$_\n";  }  close(<R>); } else {  print "Status: 403\n\nFile not found\n"; } この場合、リンクの張り方は <a href="?filename.html"> のように、ファイル名の前に、? を付けて、かつ .htaccessには DirectoryIndex index.cgi と指定します。 参考URLはうちのサイトですが、実機でもシュミレータでもどうぞ・・・

参考URL:
http://line.daiba.cx/
  • Gamil_T
  • ベストアンサー率21% (19/89)
回答No.1

私の使っているホームページスペースでは各キャリアごとのフォルダを作ってファイルを入れると自動的に飛ぶようになっているようですが・・・。

groovyreality
質問者

お礼

ありがとうございます。 いくつか無料スペースを使っているので、 確認してみます。

関連するQ&A

専門家に質問してみよう