- ベストアンサー
.htaccessによる携帯のアクセス振分けについて
- .htaccessを使用して、携帯とパソコンのアクセスを振り分ける方法について質問です。
- 現在、.htaccessで設定した振り分けは携帯からのアクセスでは正常に行われますが、ドメインの後ろにファイル名が入ったURLにアクセスした場合にはパソコンのサイトが表示されてしまいます。
- 全てのファイルやディレクトリにアクセスした場合でも携帯サイトに振り分ける方法を教えていただきたいです。
- みんなの回答 (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]
その他の回答 (1)
- knb-nkm
- ベストアンサー率66% (4/6)
最後の行の RewriteRule ^$ /mobile/index.html [R] で、^$ の部分がミソですね。 ここに、正規表現で、URLのディレクトリ、ファイル名部分を指定する事になります。 ^$ だと、 ^ --> 先頭 $ --> 末尾 という意味なので、結局先頭と末尾に何もない場合、ということになります。 ですので、/index.html を指定された場合にも対応するには、 RewriteRule ^/index.html$ /mobile/index.html [R] とうい行を追加すれば、OK でしょう。
補足
ご回答ありがとうございます 下記の通り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に飛ばしたいです
お礼
お返事遅くなり申し訳ありません。 できました! URLまでいただいてありがとうございました。参考にさせてただきました。 ありがとうございました。