.htaccessでPCページと携帯ページを振り分ける方法

このQ&Aのポイント
  • 携帯サイトのURLがwww.abc.com/となり、PCページをwww.abc.com/pc/と振り分ける方法について教えてください。
  • ブラウザでの振り分けはIE、Firefox、Safariなど主要ブラウザのPC用への振り分けで良いです。
  • 探してみたが/mobile/への振り分け方法が多く見つかりましたが、パソコンからの閲覧ページを下位階層に設置する場合の回答を教えてください。
回答を見る
  • ベストアンサー

.htaccessの書き方-PCページと携帯ページの振り分け

.htaccessの書き方-PCページと携帯ページの振り分け 色々と探してみましたが、目的の情報にたどり着けなかったので、質問させて頂きます。 携帯サイトのURLが www.abc.com/ として、 PCページを www.abc.com/pc/としました。 .htaccessで振り分けるにはどのような記述が必要なんでしょうか? 完全な素人なので、全文を教えて頂けると助かります。 ブラウザで振り分ける場合、IE、firefox、safari程度ブラウザをPC用へ振り分けでOKです。 ※注:探してみたところ、/mobile/などに振り分ける方法は多数書かれていました。ここでは、パソコンからの閲覧ページを下位階層に設置したケースでの回答を頂きたいです。

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

  • ベストアンサー
  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.2

shiftjpnorgさんのでOKとは思いますが、弾くブラウザの方が少ないので、以下でいけるかと。 トップディレクトリの .htaccess --------------------------------- RewriteEngine on RewriteCond %{HTTP_USER_AGENT} (Mozilla|Opera) [NC] RewriteRule ^.*$ /pc/ [R=301] --------------------------------- /pc/の.htaccess --------------------------------- RewriteEngine off --------------------------------- やっていること: ・HTTP_USER_AGENT に MozillaまたはOperaを含んでいれば /pc/へとばす。  (マイナーのブラウザもほとんどMozillaを含むのでPCは殆ど弾かれるはず) ・/pc/以下のディレクトリでは無効にする(置かないとループに陥ります)

4562258
質問者

お礼

ご回答ありがとう御座います。 頂いた回答2つとも共に実践してみました。 無事設置でき、振り分けできるようになりました。ありがとう御座いました。

その他の回答 (1)

回答No.1

こんにちは。 要するに、携帯ブラウザ以外を /pc/ に飛ばすという事だと思うのですが… 携帯サイト www.abc.com/.htaccess に下記 ---- ErrorDocument 403 http://www.abc.com/pc/ RewriteEngine On RewriteCond %{HTTP_USER_AGENT} "!DoCoMo" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "!J-PHONE" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "!KDDI" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "!DDIPOKET" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "!Vodafone" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "!SoftBank" [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^!Nokia.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^!MOT-.* [NC,OR] RewriteCond %{HTTP_USER_AGENT} "!L-mode" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "!WILLCOM" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "!UP.Browser" [NC] RewriteRule ^.*$ - [F] ---- PCページ www.abc.com/pc/.htaccess に下記 ---- RewriteEngine Off ---- これでどうでしょうか? 恐縮ですが参考URLは私のサイトです(汗)。

参考URL:
http://www.shift.jpn.org/7box/
4562258
質問者

お礼

求めていました回答を得られ、大変ありがとう御座います。 お陰様で無事、振り分けが可能になりました。感謝感謝です。

関連するQ&A

  • 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の振り分け

     .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
  • .htaccessでの振り分け

    .htaccessでのPC・携帯からのアクセスを振り分ける方法を教えてください。 PC用URLが、hoge.com/pc/index.html 携帯用URLが、hoge.com/index.html にしたいと考えています。(既に携帯用ページは存在し、モバイルクローラーも回ってきている為、PC用ページのurlを/pc/にしたいため) 多くの過去質問、webサイトでは、携帯からのアクセスを/m/などの下位層へふるものはありましたが、PCアクセスを下位ディレクトリに振る方法を教えてください。 ※参考URLまたは、.htaccessの具体的な記述を教えてください。

  • 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を使用したいのですが・・・ よろしくお願いします。

  • 【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で携帯サイトとPCサイトの振り分け

    http://○○.com/ 携帯サイトメイン       └/www/ PCサイトメイン作成中 http://○○.com/       └/www/をロリポップ利用中でをサブドメインにして http://www.○○.com/ としました。 http://○○.com/に 携帯でアクセスした場合 http://○○.com/ PCでアクセスした場合 http://www.○○.com/ としたいのです。 現在携帯サイトをメインに展開しているので、 携帯サイトをメインにしたページの振り分けの仕方がわかりません。       http://○○.com/PCサイトメイン       └/mobile/携帯サイトメイン で.htaccessの内容を RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.○○\.com)(:80)? [NC] RewriteRule ^(.*) ?http://○○.com/$1? [R=301,L] RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^$ /mobile/ にして携帯のアクセスを振り返ることができましたが この反対にしたいのですが可能でしょうか?

  • 携帯とPCの振り分け

    同じドメインにて携帯とPCの振り分けなのですが、htaccessにて振り分けたのですが、ブラウザに「振り分けがループしています」とでるのですが、 これはなぜでしょう? htaccessの中身の内容ですが、 DirectoryIndex index.php index.html index.htm これで読み込んだindex.phpの中身は <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: http://www.○○○○○.com/mobile/index.xhtml"); exit; }else if(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){ header("Location: http://www.○○○○○.com/mobile/index.xhtml"); exit; }else if(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){ header("Location: http://www.○○○○○.com/mobile/index.xhtml"); exit; }else{ header("Location: http://www.○○○○○.com/"); exit; } ?> サーバはlolipopでhtaccessのパーミッションは604で phpのパーミッションは700です。

    • 締切済み
    • CGI
  • .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
  • 携帯からYahoo検索【PCサイト】振分けについて

    携帯サイトから、PCのトップページにアクセスした場合、携帯サイトのトップページへ振り分けられるように、.htaccessを設定しています。 携帯からYahoo検索で、【ケータイサイト】カテゴリのトップページへアクセスした場合は、問題なく振り分けられます こんな感じです↓ http://www.ドメイン/index.html → http://www.ドメイン/mobile/index.html ですが、【PCサイト】カテゴリのトップページへアクセスしても、モバイルサイトのトップへ振分けされず、PCサイトのトップがそのまま表示されてしまいます。 【PCサイト】カテゴリからも、mobile/index.html へ振分けを行うことは可能でしょうか? よろしくお願いします