.htaccessでPCと携帯(スマートフォンでない、所謂ガラケー)を判定しPC版、携帯版のサイトにアクセスの振り分けを実装したいのですが、うまくできません。

具体的には、携帯でPC版のアドレスhttp://example.comにアクセスがあった場合、http://example.com/mobileに遷移させ、
逆にPCで携帯版のアドレスhttp://example.com/mobileにアクセスがあった場合、http://example.comに遷移する、
それも、ユーザが今アクセスしようとした、アドレスの携帯版、PC版にきちんと遷移するようにしたいと思っています。
(例えばhttp://example.com/member/1に携帯からアクセスされた場合、http://example.com/mobile/member/1に遷移するといった具合に)

どのように.htaccessに記述すればいいですか?

現状.htaccessは以下のような実装をしており、この仕様を維持しつつPCと携帯の振り分けを実装したいです。

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? [NC]
RewriteRule ^(.*) http://example.com/$1 [R=301,L]

RewriteCond $1 !^(index\.php|.+\.css$|.+\.png$|.+\.gif$|.+\.jpg$|.+\.jpeg$|.+\.js$)
RewriteRule ^(.*)$ index.php/$1 [L]

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/12/26 09:50:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:kodairabase No.1

回答回数661ベストアンサー獲得回数80

ポイント67pt

以下のようにRewriteCondを書き換えてみてください。
http://www.w3lab.jp/htac/keitai.html

他1件のコメントを見る
id:kodairabase

次のようにしてみてください。

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) {NC]
RewriteRule ^$ /mobile/ [R]

RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? [NC]
RewriteRule ^(.*) http://example.com/$1 [R=301,L]

RewriteCond $1 !^(index\.php|.+\.css$|.+\.png$|.+\.gif$|.+\.jpg$|.+\.jpeg$|.+\.js$)
RewriteRule ^(.*)$ index.php/$1 [L]

2011/12/20 16:16:00
id:takaponn12

返答ありがとうございます。
残念ながら、その書き方でもできませんでした。
他に何か方法はありますでしょうか?
どうしても解決しておきたい問題なので。

2011/12/21 09:26:23
id:mario-16 No.3

回答回数219ベストアンサー獲得回数21

ポイント66pt

http://c-brains.jp/blog/wsg/11/06/29-121115.php
このページに書いてある内容は参考にならないでしょうか?

  • id:tdoi
    User-Agentでの振り分けは詐称が簡単なので、厳密にしたいならば、メンテナンスなどは大変になるかもですが、REMOTE_ADDRで振り分けた方が確実かもですね。
    参考までに。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません