• ベストアンサー

PCと携帯サイトの振り分け方法

ホームページをいろいろ見たのですが、振り分けの具体な方法がよく分かりません。PHPと.htaccessの方法があるくらいは認識できたのですが、それでは具体的にどの様な入力をすればよいのか分かりません。初心者向けの分かりやすいサイトや図書がありましたら、是非紹介いただけませんか?PHPと.htaccessの機能上の違いもよく分かりません。どうか、よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数1

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

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

.htaccessファイルは http://e-words.jp/w/2Ehtaccess.html こちらに書いてあるとおり、ディレクトリ単位でアクセスの制御(制限等)を行うことが出来るファイルです。 ただし、PHPのスクリプトのように細かい制御を行うことが出来ません。 PHPスクリプトで携帯用サイトと、PCサイトを振り分ける方法で話を進めますと、大まかに、 1.ユーザエージェント情報で制御する 2.IPアドレスで制御する 3.その両方 といったところになります。 「1」は、ブラウザはサーバにリクエストを行う際に、ブラウザの種類などを送信します。 それを見て判別する方法です。 PHPでは、それらの情報は、$_SERVERというスーパーグローバル変数に格納されます。 その中でブラウザの種類(ユーザエージェント)の情報は、 $_SERVER['HTTP_USER_AGENT'] とすると取得することが出来ます。 その中に、docomoであれば、「DoCoMo/2.0 SO903i(c100;TB;W24H18)」などといった、ある程度法則性のあるものが渡されます。 上記例ですと、ドコモのSO903iという機種のものです。 この情報をみて、正規表現などで、チェックして振り分けます。 具体的には http://opqr.jp/2007/09/phppc.html こちらのサイトを見ると記述方法が分かると思います。(googleで「php モバイル 振り分け」として検索した上位に出てきたサイトです) 「2」は、IPアドレスを見て、携帯電話からのアクセスかそれ以外からのアクセスかを判別する方法です。 携帯電話は、特定のIPアドレス帯域が割り振られます。 docomo、au、softbank、それぞれの公式サイトに、その帯域が明記されておりますので確認してください。 IPアドレスに関しても、 $_SERVER['REMOTE_ADDR'] などとすると取得することが出来ますので、 後は公式サイトにあるIPアドレス帯域の表に記載されているIPアドレスの中に含まれているかどうかを判別して振り分けます。 「3」に関しては、ブラウザから送信されるユーザエージェント情報は簡単に偽装することが出来るので、IPアドレスでどこの携帯電話会社の端末からアクセスされたかを判別して、ユーザエージェント情報を見て、細かい端末の情報を取得して振り分ける、といった感じになります。 ユーザエージェントでの振り分けは http://dozo.matrix.jp/pear/index.php?PEAR%2FNet_UserAgent_Mobile こちらの解説サイトに記載されている「Net_UserAgent_Mobile」など、完成度の高いライブラリがあります。 また、IPアドレスも含めてであれば、 http://www.ezinfo.jp/php こちらで公開されている「携帯振り分け君」などもあります。 ※各携帯電話会社のIPアドレス帯域は、不定期的に更新されますので定期的にメンテナンスする必要がありますので注意が必要です。

m-karina
質問者

お礼

詳しくありがとうございます。 とりあえず、参考のHPを見てやってみます。 夜分にここまの回答に感謝します。

関連するQ&A

  • 携帯サイトの振り分けについて

    説明がややこしかったらすみません。 現在、既存のPCサイトに合わせて新規の携帯サイトを作っています。 PCサイトのURL(index.html)にアクセスをしたときに 携帯からのアクセスは(/mobile/index.html)などに飛ばしたいと考えています。 htaccessでの振り分けを考えていましたが、 サーバーがhtaccessの使用ができないみたいで困っています。 PCサイトの(index.html)は URLの変更はできませんので index.phpなどをおいて phpにアクセスさせて飛ばすこともできなくて どうしたらよいか困っています。 どなたかよい解決方法がお分かりになる方がいらっしゃいませんでしょうか? よろしくお願いいたします。

  • 【PHP・.htaccess】PCと携帯の振り分けについて

    【PHP・.htaccess】PCと携帯の振り分けについて お世話になります。 PHP・.htaccess共に初心者なのですが、 PCサイトと携帯サイトの振り分けで悩んでいるので宜しくお願い致します。 現在の構成が http://sample.com/ ←トップページ(PHPファイルのみ。各トップへ振り分け) http://sample.com/pc/ ←PCトップページ http://sample.com/mo/ ←モバイルトップページ(.htaccessでIP制限。PCからのアクセスはトップへ) ---------------------------------------------------- 振り分けPHP(http://sample.com/) <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: http://sample/mo/"); exit; }else if(preg_match("/^(J-PHONE|Vodafone|MOT-[CV]|SoftBank)/i", $agent)){ header("Location: http://sample/mo/"); exit; }else if(preg_match("/^KDDI-/i", $agent) || preg_match("/UP.Browser/i", $agent)){ header("Location: http://sample/mo/"); exit; }else{ header("Location: http://sample/pc/"); exit; } ---------------------------------------------------- となって居ますが、都合により http://sample.com/ ←PCトップ モバイルからのアクセスはmoに振り分け。 http://sample.com/mo/ ←モバイルトップページ。(.htaccessでIP制限。PCからのアクセスはトップへ) 上記の形に切り替えたいと思っています、 PHPを使って振り分けをしたいと思っているのですが、 上記の形を再現する事は出来ますでしょうか? また、.htaccessを利用する事により解決が出来るのであれば、 そちらもご教授いただけると幸いです。

    • 締切済み
    • PHP
  • ホームページPC/携帯自動振り分け

    クライアントのホームページを作成しておりますが、 某レンタルサーバ・独自ドメインでPC用HP運営中です。 携帯用サイトも作り、同アドレス「www.○○○.com」で自動振り分けしたいと思います。 PC用のトップページは「index.html」のままにしたいのですが、 当初、phpにて行おうと取り組みましたが、 サーバ側の.htaccessの規制により indexファイルの順位を変えることが出来ないようで、 (.htaccessを書き換えたらエラーに)一度断念しました。 何か良い方法(php以外でも)はないでしょうか? ■.htaccess 利用可能なディレクティブはAuthConfigとLimitのみ ■indexファイルの優先順位 index.html/index.htm/index.cgi/index.php/index.shtml/index.wml/index.hdml  ■php、perl、CGI使用可能 ◎希望条件・・PC用のトップページは「index.html」 以上、宜しくお願いいたします。

  • .htaccessで携帯サイトとPCサイトの振り分けについて

    .htaccessで携帯サイトとPCサイトの振り分けについて お世話になります。 .htaccessで携帯サイトとPCサイトの振り分けで困っています。 現在、index.phpで携帯サイトとPCサイトの振り分けしています。この場合、PCサイトのトップページがindex.htmlではなく他の名前にしなくてはならないようで、現在はpc.htmlにしています。 どうにかpc.htmlではなく、index.htmlのまま携帯サイトとPCサイトの振り分けをしたいのです。 .htaccessであればできそうなので、いろいろと調べながら試したのですがうまくいきませんでした。 使用しているサーバーはさくらのレンタルサーバーで、ライトプランです。 mod_rewriteは入ってると記載してありました。.htaccessもOKなようです。 以下のように.htaccessファイルに記述して試しました。 例1) RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Up.Browser [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^DDIPOCKET [NC] RewriteRule ^$ abc.com/m/ [R] 例2) Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ http://www.abc.com/m/index.html [R] 素人ですので、できましたら記述全文教えていただけるとありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • PCサイトと携帯サイトの振り分け

    PCサイトと携帯サイトの振り分けをしたく、いくつかサイトを調べ .htaccess で以下のようにファイルを作り設置しました。 /////////////////// RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^$ /m/ [R] /////////////////// ディレクトリ構成は ├ index.html(PCサイトトップ) ├ .htaccess ├ m(ケータイサイト用フォルダ) ├ ├ index.html(ケータイサイトトップ) ├ ├   ├ ガラケーでみると以下のようなエラーになってしまいます。 /////////////////// Not Found The request URL /m/ was not found on this server. /////////////////// 解消方法なにがご存知でしたらお知らせください。

    • 締切済み
    • CSS
  • 同一URLで携帯サイトとPCサイトの振り分け方を教えてください。

    はじめまして。 実はこのたび携帯サイトの制作を頼まれたのですが、その方は将来的にはPCサイトも同一のURLで開設を考えているとのことです。 そこで、いろいろ調べ回ったところユーザーエージェントによる振り分け機能というものがあることを知りました。 しかし、私はHTMLについては少々知識はあるのですが、PHP等のプログラミングについては全くの初心者です。 どこに何を配置すればこのような振り分け機能が動作するのかわかりません。 どうか教えていただけないでしょうか?

    • ベストアンサー
    • PHP
  • 携帯用サイト iphone振り分け

    携帯用サイト iphone振り分け 現在3キャリア対応の携帯(兼PC)サイトを作成しておりますが、iphoneのみ特設ページに振り分けようと思います。 ただし振り分けるのはトップぺージのみで下層ページは統一して行きたいので、htaccessのようにサイト全体に効果がある振り分け方は好ましくありません。 また、SEOなどを考えてトップページのアドレス(index.html)は変更したくないので、一旦phpにアクセスして、index.htmlとiphone.htmlに振り分けるといった方法も取りたくありません。 一旦全てのユーザーがindex.htmlにアクセスし、そこからiphoneユーザーのにiphone.htmlに移動するといった振り分け方は無いでしょうか。

    • ベストアンサー
    • PHP
  • htaccessでPCと携帯の振り分け(難あり)

    パソコンと携帯の振り分けは、htaccessでエージェントにより振り分けが一般的だと思います。 「RewriteEngine on」で振り分けの場合について。 http://www.hogehoge.com/ http://www.hogehoge.com/mobile/ トップディレクトリにhtaccessを設置した場合、携帯サイトが入っている「mobile」ディレクトリには、「RewriteEngine Off」を記述したhtaccessを設置する必要があります。 普通であれば、これで問題なくパソコンと携帯を振り分ける事ができるのですが、携帯サイトが入っている「mobile」ディレクトリには、動的アドレスを静的に変更するために、htaccessに「RewriteEngine on」が記述されています。 よって、パソコンと携帯の振り分けを無効にするために「RewriteEngine Off」をしなければならないのに、動的アドレスを静的にアドレスにするために、「RewriteEngine on」も記述しなければなりません。 パソコンと携帯の振り分けと、動的を静的にする変換を行うような良い記述方法はあるでしょうか? ちなみに、パソコントップページはすでに検索エンジンに登録されているため、振り分け用のindex.cgiなどは使用したくないと思っています。 アドバイスをお願い致します。

    • ベストアンサー
    • HTML
  • 振り分けはできますが、携帯サイトをかんたんに

    PHPを使った振り分けはできます。 しかし、PC←→携帯と相互互換性のあるサイトを 作る上で、どんな方法がいちばん楽でしょうか? PCページの内容と内容は変えないで携帯サイトに 表示させたいと思います。 if文で携帯と判断したら keitai.htmを出力 タグをすっきりさせ、変数表示 という方法が一番楽でしょうか? もしくはPHPのライブラリに携帯サイトを作る上で 便利にできるクラスがあったら教えてください。

    • ベストアンサー
    • PHP
  • 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使用可能です。