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

解決済みの質問

.htaccessでPCと携帯サイトを振り分けたい

急ぎの仕事で、PCサイトと携帯サイトを振り分けなければならず、
一番使いやすそうな .htaccess を試しているところです。

いろんなサイトを見て、
(PCサイト) www.aaa.com/
から
(携帯サイト) www.aaa.com/i/
に振り分ける事には成功したのですが、
携帯からでも
www.aaa.com/index.html
と入力すると、振り分け出来ずに
そのままPCサイトが表示されてしまいます。

.htaccessの記述は以下の通りです。

RewriteEngine On
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} ^MOT- [OR]
RewriteCond %{HTTP_USER_AGENT} ^KDDI [OR]
RewriteCond %{HTTP_USER_AGENT} UP\.Browser
RewriteRule ^$ /i/index.html [R]

また、auのSH008でテストを行っております。

ここから先がどうしても分からないので、
どなたか知恵を貸していただけませんでしょうか?

まだ初心者で、内容を完璧には理解できておりませんので
出来ましたら全文を記述していただけると大変助かります。

以上、よろしくお願いいたします。

投稿日時 - 2011-05-18 21:15:05

QNo.6747049

すぐに回答ほしいです

質問者が選んだベストアンサー

RewriteEngine On
RewriteCond %{REQUEST_URI} !/i/
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} ^MOT- [OR]
RewriteCond %{HTTP_USER_AGENT} ^KDDI [OR]
RewriteCond %{HTTP_USER_AGENT} UP\.Browser
RewriteRule ^.*$ /i/index.html [R=302]

参考URL:http://webings.net/htaccess/rewritemobile2/

投稿日時 - 2011-05-19 12:30:08

お礼

教えていただいた記述でテスト成功しました。

おかげさまで、やりたい事がクリア出来ました。
大変助かりました。ありがとうございます。

どうも2行目がミソのようですね。

もっと勉強して、きちんと理解したいと思います。

投稿日時 - 2011-05-19 15:24:18

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

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

回答(2)

ANo.1

/index.htmlだけでなく、携帯からの全てのアクセスを
/i/フォルダ内の同ファイル名に振り分けたいのであれば、
最後の部分は
Rewrite ^(.*)$ /i$1 [R]
とすればよさそうに思います。
正規表現式を勉強してください。

投稿日時 - 2011-05-19 02:09:03

お礼

早速のご回答ありがとうございます。

試してみたのですが、
PCでアクセスしたところ
以下のエラーが表示されてしまいました。

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

また、最終的には以下の形にしたいのですが、
(別ページの制御)
Redirect permanent /test/index_1.html http://www.aaa.com/test/index.html
(携帯振り分け制御)
RewriteEngine On
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} ^MOT- [OR]
RewriteCond %{HTTP_USER_AGENT} ^KDDI [OR]
RewriteCond %{HTTP_USER_AGENT} UP\.Browser
RewriteRule Rewrite ^(.*)$ /i$1 [R]
(以下、www.aaa.com/index.htmlに飛ばす為の制御(だったと思います))
RewriteEngine On
RewriteCond %{HTTP_HOST} ^aaa\.com
RewriteRule ^(.*)$ http://www.aaa.com/$1 [R=301,L]

RewriteEngine On
RewriteRule ^(.*)/$ /$1/index.html [R=301,L]

RewriteEngine On
RewriteRule ^$ /index.html [R=301,L]

のように、複数命令がある場合、
携帯振り分けの命令はどこに入れるのが妥当なのでしょうか?

質問が増えて申し訳ございません。
いろいろと試している最中ですが、
なかなか解決できないので、
お心当たりがございましたら、よろしくお願いいたします。

正規表現も、急ぎ勉強したいと思います。

投稿日時 - 2011-05-19 09:47:35

あなたにオススメの質問