• ベストアンサー

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

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

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

  • ベストアンサー
回答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