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

締切り済みの質問

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

投稿日時 - 2009-06-16 16:56:55

QNo.5049115

すぐに回答ほしいです

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

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

回答(2)

ANo.2

^$
の意味するところは?

RewriteRule ^(.*)$ ​http://www.hogehoge.com/i/​$1 [R,L]
とか
RewriteRule ^.*$ ​http://www.hogehoge.com/i/index.html [R]
ではいかがですか?

注:
​は削除してください。
登録方法がわからないぃ。

投稿日時 - 2009-06-17 07:26:00

お礼

ありがとうございます。

RewriteRule ^(.*)$ ​​http://www.hogehoge.com/i/​$1​ [R,L]

にしたら、きちんと動きました。
正規表現をきちんと理解しないとですね。
と言いつつ、
[R]と[R,L]
の違いは、何なのでしょうか。。。

いづれにしても、思った通りの動作になりました。
ありがとうございます。

投稿日時 - 2009-06-18 10:59:13

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

投稿日時 - 2009-06-16 23:02:26

お礼

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

投稿日時 - 2009-06-18 10:56:23

あなたにオススメの質問