- 締切済み
.htaccess Rewriteで携帯キャリア判別
.htaccessのrewriteを使用して携帯キャリア判別をしています。 .htaccessの記述は、例えばdocomoの場合、 ************************** RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.hogehoge.com/i/index.html [R] ************************** として、http://www.hogehoge.com/にアクセスした場合、 /i/のディレクトリに移動するようにしています。 上記で.htaccessは正常に動いており、上述の様に http://www.hogehoge.com/のURLにimodeでアクセスすると確かに、 http://www.hogehoge.com/i/に移動しているのです。 ここからが質問なのですが、まったく同じ状況で、URLを http://www.hogehoge.com/index.html や、 http://www.hogehoge.com/content01.html http://www.hogehoge.com/content02.html など、ファイル名まで具体的に記述してアクセスすると、 /i/に移動せず、urlどおりのファイルがそのまま表示されてしまうのです。 希望としては、ファイル名にかかわらず、 http://www.hogehoge.com/ のディレクトリ内にimodeでアクセスした場合には、強制的に http://www.hogehoge.com/i/index.html に移動するようにしたいのです。 上述の.htaccessの記述でなにか、間違いがあるでしょうか? また、変更すべき点があるでしょうか? サイト内を色々と、見て回り、参考になるような事はしてみたのですが、いずれもうまくいかず、質問させて頂いています。 よろしく、ご教示下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- OKwebb
- ベストアンサー率44% (92/208)
^$ の意味するところは? RewriteRule ^(.*)$ http://www.hogehoge.com/i/$1 [R,L] とか RewriteRule ^.*$ http://www.hogehoge.com/i/index.html [R] ではいかがですか? 注: は削除してください。 登録方法がわからないぃ。
.htaccessはちゃんと「TOPディレクトリ」に設置してますか? http://it.kndb.jp/entry/show/id/2328
お礼
TOPディレクトリには、置いてあります~。
お礼
ありがとうございます。 RewriteRule ^(.*)$ http://www.hogehoge.com/i/$1 [R,L] にしたら、きちんと動きました。 正規表現をきちんと理解しないとですね。 と言いつつ、 [R]と[R,L] の違いは、何なのでしょうか。。。 いづれにしても、思った通りの動作になりました。 ありがとうございます。