みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

スマホからのアクセスを振り分けるには

スマホからの訪問があったときに、固有のページに飛ばしたいと考えています。
http://www.hoge.com/へのアクセスはhttp://www.hoge.com/m/
に飛ばすため、

RewriteEngine On
Options FollowSymLinks

# iPod
RewriteCond %{HTTP_USER_AGENT} iPod
RewriteRule ^$ /m/ [R]

# iPhone
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule ^$ /m/ [R]

# Android
RewriteCond %{HTTP_USER_AGENT} android
RewriteRule ^$ /m/ [R]

としました。
ところが、http://www.hoge.com/のようにディレクトリで飛んできた場合は問題なく動作するのですが、ファイル名指定で来た場合、
例えば
http://www.hoge.com/index.html宛にリンクで飛んできた場合は、Rewriteせずにそのまま
http://www.hoge.com/index.htmlを開いてしまいます。
http://www.hoge.com/index.htmlに直接リンクされた場合でもスマホだけhttp://www.hoge.com/m/に飛ばす方法はないでしょうか。
.htaccessでは無理でしょうか。

よろしくお願いいたします。

投稿日時 - 2011-05-27 19:48:49

QNo.6767690

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

念のため、RewriteEngine Onのあとに以下の行を追加してみてください。
RewriteBase /

Options FollowSymLinks

# iPod
RewriteCond %{HTTP_USER_AGENT} iPod
RewriteRule ^$ /m/ [R]
         ・
         ・
         ・


あと全ての[R]の部分を[R,L]にしたほうがよいと思います。


それでも、できないようでしたら、AllowOverride が設定されていないかも知れませんので
↓↓Apache チュートリアル: .htaccess ファイル↓↓
http://httpd.apache.org/docs/2.2/ja/howto/htaccess.html
このページの問題解決を参考に.htaccess ファイルを確認してみてください。

あと同回答がこれで3件目です。一度、質問される前に検索をされたほうが早く解決できることもあるかと思います。

投稿日時 - 2011-05-27 23:07:35

補足

やってみましたが、変化はありませんでした。
RewriteBaseの重要性はわかりました。

とりあえず、index.htmlをPHPに変えてファイルを読み込まれたときにエージェントを見て飛ばすことにしました。
ありがとうございました。

投稿日時 - 2011-05-30 13:15:13

お礼

ご回答ありがとうございます。
ちょっとすぐ確認できないので、月曜日に確認してまたご返答させていただきます。

投稿日時 - 2011-05-28 09:57:19

あなたにオススメの質問