• 締切済み

携帯・PCの振り分け、PHPかhtaccessか

hige_marioの回答

回答No.2

if (preg_match ("/\bAndroid\b/i",$_SERVER['HTTP_USER_AGENT'){ header("Location: 行き先"); } こんな感じにすれば、Androidからのアクセスだと「行き先」のURLに飛びますよね。この中の正規表現(preg_match)で、より細かなmatch条件を組めば偽装を拒むことができるかもしれません。 各キャリアのUSER_AGENTを調べてmatch条件を組んだり、逆に偽装側USER_AGENTの癖を探したりすれば。正規表現はとても強力なので、細かな条件を組めばかなりUSERを制限できると思います。 あと、携帯の場合ならsubscriberの有無や記録を条件に追加するのも有効でしょう。 ただ、偽装を特定するのはいたちごっこな気もするので、偽装されては困る要因を整理して、サイトの構造に気を使う方が有効かと思ってみたり。 ^-^

関連するQ&A

  • 【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
  • htaccessのリダイレクト(php→html)

    .phpで運用していたウェブページの拡張子を、.htmlに変更したのですが、 .phpにアクセスがあった場合、.htmlにリダイレクトするように htaccessを設定したいと思っています。 htaccessに、 RedirectPermanent http://user-domain/hogehoge.php http://user-domain/hogehoge.html と書けばリダイレクトされるとは思うのですが、 ページ数が少し多いサイトですので、1ページ1ページ書かずにできる方法を ご存知の方がいれば、教えて頂けないかと思いこちらに投稿しました。 どなたかお知恵を貸していただけませんか?? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 携帯サイトを.htaccessにてPCからのアクセス拒否設定しましたが、

    携帯サイトを.htaccessにてPCからのアクセス拒否設定しましたが、問題が発覚しました。ヤフーモバイルやMSNやグーグルモバイルからのロボット(クロール)も弾いてしまうのではないでしょうか? (ドコモ、EZWEB、ボーダフォンのIPだけを入室許可する設定で、それ以外からのアクセスは、別のPC専用ページへ飛んでしまう設定にしているため) かといってPHPやCGI設定での端末振り分けですと、ユーザーエージェントスイッチャーなどの“なりすまし”で入室されてしまうので、避けたいです。 要するに (1).htaccessにてPCからのアクセス拒否設定をしたまま (2)ロボットクロールに自分の携帯サイトの情報を取得してもらう 方法を知りたいです。 各社のロボットのIPが解ると話は簡単なのですが(そのIPを許可すればよいため)、解りません。ちなみに解析はアクセスアナライザー(サーバがロリポップなので、ロリポの解析ページでも見れるが今のとこそれらしきIPがない)でございます。 お手数ですが、どなたかご教授ください。 宜しくお願い申し上げます。

  • PCと携帯の振り分けについて教えてください

    PCと携帯の振り分けについて教えてください。 htaccessで、ユーザーエージェントの判断で、PC用のトップページと 携帯用のトップページへ振り分けを行ったのですが・・・ http://xxx.com/ だと正常に携帯トップページへ振り分けられるのですが、 http://xxx.com/index.htmlだと携帯からでもPCのトップページが 表示されてしまいます。 いろいろ調べたのですが、携帯はMETAタグのリフレッシュ?に対応していないから、http://xxx.com/index.htmlのindex.htmlを携帯用に作成してPCのトップページは別に作成するとか・・・書いてありました。 http://xxx.com/index.htmlにアクセスした場合は、htaccessは有効にならないのでしょうか? 他にどのような対応方法があるのでしょうか? できれば、現PC用のindex.htmlを使用したいのですが・・・ よろしくお願いします。

  • 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
  • .htaccessによって、PCからのサイトへの侵入を防ぎたいです。

    現在携帯ようのページを作っています。 はじめにアクセスしてきたユーザーを振り分けることで、PCからの 侵入をある程度防ぐことができたのですが、 携帯用のページへ飛ばす際のURLに直接アクセスすることで、 携帯用のページがパソコンで見れてしまうことに気づきました。 .htaccessによって、PCからの不正なアクセスを防ぐことは可能でしょうか? 方法があれば教えてください。 .htaccessにかぎらず他の方法にも心あたりがある方がいらっしゃったら、 ぜひ教えてください。

  • phpとhtaccessのリダイレクト

    aというフォルダの中のhtmファイルからphpファイルを通して bというフォルダの中のファイルにアクセスさせています。 htmファイルからのリンクはxxx.php?file=../b/xxx.xxxのようにしています。 bのフォルダがサーバ容量を圧迫しているのでbのフォルダを読み込むときだけ別サーバから読み込むよう.htaccessでリダイレクトを Redirect permanent b/ http://xxxxx.com/b/ のようにしました。 直接bのフォルダの中を読み込めばリダイレクトされるのですが、aのフォルダからphpを通してbのフォルダにアクセスするとリダイレクトされません。 どのようにすれば動作させることができるでしょうか?

    • 締切済み
    • PHP
  • .htaccessによる携帯のアクセス振分けについて

    .htaccessによる携帯のアクセス振分けについて .htaccess で携帯とパソコンの振分けを行ったのですが http://*******.com/ を携帯からアクセスした場合はちゃんと携帯サイトへ振り分けられますが http://*******.com/index.html と ドメインの後ろにファイル名が入ったURLに アクセスすると振分けが行われずパソコンのサイトを表示してしまいます 参考サイトには 「「.htaccess」ファイルは設置したディレクトリ以下全てに影響します。」 と書いてあります 参考サイト: http://www.w3lab.jp/htac/keitai.html どのファイルやディレクトリにアクセスをしても 携帯サイトに振り分けられるようにしたいのですが どのようにしたらいいでしょうか? よろしくお願いいたします .htaccess には下記の通り記述してあります ------------------------------------------------------------ RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo [OR] RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [OR] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ /mobile/index.html [R] ------------------------------------------------------------

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

     .htaccessで携帯サイトとPCサイトの振り分けで困っています。 .htaccessは以下の通りです。 <IfModule mod_rewrite.c> RewriteEngine On # SoftBank RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} ^Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} ^MOT- [OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank RewriteRule ^$ /mobile/[R=302,L] # DoCoMo RewriteCond %{HTTP_USER_AGENT} ^DoCoMo RewriteRule ^$ /mobile/[R=302,L] # au(HDML-Only) RewriteCond %{HTTP_USER_AGENT} ^UP.Browser RewriteRule ^$ /mobile/[R=302,L] # au(HTML-OK) RewriteCond %{HTTP_USER_AGENT} ^KDDI RewriteRule ^$ /mobile/[R=302,L] </IfModule>  これで、PCからのアクセスはどのページへも正常なのですが、携帯からのアクセスはhttp://example.comですとちゃんと携帯サイトのindex.htmlへいくのですが、http://example.com/***.htmlで携帯からアクセスするとPCサイトのhttp://example.com/***.htmlへつながってしまいます。この場合、携帯サイトのindex.htmlへ導くためにはどのようにすればよいのでしょうか。  また、欲を言えば、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