• 締切済み

.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の記述でなにか、間違いがあるでしょうか? また、変更すべき点があるでしょうか? サイト内を色々と、見て回り、参考になるような事はしてみたのですが、いずれもうまくいかず、質問させて頂いています。 よろしく、ご教示下さい。

みんなの回答

  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.2

^$ の意味するところは? RewriteRule ^(.*)$ ​http://www.hogehoge.com/i/​$1 [R,L] とか RewriteRule ^.*$ ​http://www.hogehoge.com/i/index.html [R] ではいかがですか? 注: ​は削除してください。 登録方法がわからないぃ。

bauzu_2005
質問者

お礼

ありがとうございます。 RewriteRule ^(.*)$ ​​http://www.hogehoge.com/i/​$1​ [R,L] にしたら、きちんと動きました。 正規表現をきちんと理解しないとですね。 と言いつつ、 [R]と[R,L] の違いは、何なのでしょうか。。。 いづれにしても、思った通りの動作になりました。 ありがとうございます。

noname#100277
noname#100277
回答No.1

.htaccessはちゃんと「TOPディレクトリ」に設置してますか? http://it.kndb.jp/entry/show/id/2328

bauzu_2005
質問者

お礼

TOPディレクトリには、置いてあります~。

関連するQ&A