• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.htaccessによる携帯のアクセス振分けについて)

.htaccessによる携帯のアクセス振分けについて

このQ&Aのポイント
  • .htaccessを使用して、携帯とパソコンのアクセスを振り分ける方法について質問です。
  • 現在、.htaccessで設定した振り分けは携帯からのアクセスでは正常に行われますが、ドメインの後ろにファイル名が入ったURLにアクセスした場合にはパソコンのサイトが表示されてしまいます。
  • 全てのファイルやディレクトリにアクセスした場合でも携帯サイトに振り分ける方法を教えていただきたいです。

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

  • ベストアンサー
noname#116331
noname#116331
回答No.2

RewriteEngine on RewriteCond %{REQUEST_URI} !/mobile/ 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=302,L]

参考URL:
http://xn--u8jxb9ib9150b2px.jp/htaccess/rewritemobile2.html
maimai0629
質問者

お礼

お返事遅くなり申し訳ありません。 できました! URLまでいただいてありがとうございました。参考にさせてただきました。 ありがとうございました。

その他の回答 (1)

  • knb-nkm
  • ベストアンサー率66% (4/6)
回答No.1

最後の行の RewriteRule ^$ /mobile/index.html [R] で、^$ の部分がミソですね。 ここに、正規表現で、URLのディレクトリ、ファイル名部分を指定する事になります。 ^$ だと、 ^ --> 先頭 $ --> 末尾 という意味なので、結局先頭と末尾に何もない場合、ということになります。 ですので、/index.html を指定された場合にも対応するには、 RewriteRule ^/index.html$ /mobile/index.html [R] とうい行を追加すれば、OK でしょう。

参考URL:
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteRule
maimai0629
質問者

補足

ご回答ありがとうございます 下記の通り1行追加したところindex.htmlからでも移動するようになりました RewriteRule ^index.html$ /mobile/index.html [R] ※^/index.html$の「/」をはずさないと移動しなかったのではずさせていただきました すみません、もう一つ教えていただけますか? .htaccessを設置したディレクトリ内の、どのファイルからアクセスした場合でも、mobile/index.html に移動するにはどうしたらいいですか? 例えば test.html や /profile/index.html と、2階層目、3階層目のファイルにアクセスした場合など 名前や階層がどうであれ、全てmobile/index.htmlに飛ばしたいです

関連するQ&A