• 締切済み

.htaccess でPC/携帯を振り分けつつ、転送方式に301リダイレクトを使う場合

PCサイトと携帯サイトを、レンタルサーバ上にディレクトリを分けて設置して、 http://www.example.com でアクセスすると /home/www http://m.example.com でアクセスすると /home/m を読みに行くように、.htaccess を設定したいと考えています。 (DNSでは、どちらも通るように設定済みです) また、PC/携帯のアクセス振分も同時に行いたく、サブドメインなしの http://example.com でアクセスすると、端末情報を判別して、 携帯のときは http://m.example.com、それ以外のときは http://www.example.com へ 「301リダイレクト」で転送させたいと思っています。 このような要件を同時に満たすには、どのように.htaccess を記述 すれば良いでしょうか?

  • HTML
  • 回答数1
  • ありがとう数1

みんなの回答

  • kyotokyo
  • ベストアンサー率35% (27/77)
回答No.1

RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^(DoCoMo|KDDI|DDIPOKET|UP.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^$ /mobile/ [R] を.htaccessに書き加えて RewriteRuleの/mobile/を/m/等にすれば 携帯でアクセスした場合に分岐が出来ます。 また、http://www.example.com​とhttp://m.example.comだと そもそもホスト名が違うので分ける必要はないのでは?

orenge_mint
質問者

お礼

ありがとうございました。携帯の振分けはこれで良さそうですが、 www.example.com​ でアクセスすると /home/www m.example.com​ でアクセスすると /home/m を読むようにする部分は、.htaccess でどう設定すれば良いでしょうか? 以前のレンタルサーバでは、設定画面で設定できたのですが、移転先では 自分でコードを書かねばならず、困っているのですが…。 ちなみに、example.com​ でPCと携帯の混じったアクセスがあるため、 それぞれ振分けたいという意図があります。 ところで、投稿するとなぜ勝手に、「​」がURLの後ろにつくんでしょうね。

関連するQ&A

  • .htaccessの書き方 リダイレクト

    http://example.com http://www.example.com https://example.com これらへのアクセス全てを https://www.example.com にリダイレクトさせたいと思います .htaccessは具体的にどう書いたら良いでしょうか? よろしくお願いします

  • .htaccessのリダイレクトについて

    .htaccessで以下のようにURLをリダイレクトさせたいのですが、調べてもなかなかこのようなサンプルがなく、悩んでいます。 以下のようなURLにアクセスした場合 example.com/public example.com/public/ example.com/public/pageA example.com/public/pageB example.com/public/pageB/pageC 以下のように、publicを削除したURLにリダイレクトしたいです。 example.com example.com/ example.com/pageA example.com/pageB example.com/pageB/pageC 上記の設定は.htaccessのRewriteRuleの設定で可能でしょうか? どなたか詳しい方がいたら教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • PCから携帯サイトを見た場合のリダイレクト

    PCから携帯サイトを見た場合に、PCサイトにリダイレクトしたいのですが、 .htaccessには、どのように書けばよいでしょうか? http://www.aaa.com/m/bbb/ → http://www.aaa.com/bbb/ http://www.aaa.com/m/~.php → http://www.aaa.com/~.html にしたいのですが、そのようなことは可能なのでしょうか? いろいろ検索したりしたのですが、見つけられませんでした。

  • htaccessでリダイレクト 簡易転送

    今少し長いURLで携帯電話の人に伝えるのに困っています。 hoge.com というドメイン上なのですが、この後ろが少々長いんです。 hoge.com/xxx-yyy-ccc/aaa-bb/cc.html 便宜上ハイフンなど入れていますが、実際はもっとややこしいアルファベットの羅列のページがあります。 そのページを外で知人に参考資料として教える場合がありますが、携帯電話相手ですと非常に入力に手間もかかりますし面倒です。 このページだけアドレスを変えるわけにもいきませんし。 そこで hoge.com/m をリダイレクトして見ていただければと考えています。 携帯電話であれば /m で302リダイレクト パソコンからでは/pc で301リダイレクトを考えています。 携帯電話からですと302でないとリダイレクトしない事もあるようですし、パソコンでは302は使わない方がいいという解説も見られたので。 ただ私のこの理解が間違えていたり、そもそもリダイレクトの使い方を間違えていてSEO的に問題が生じても困ります。 教えていただきたいのは ・このような簡易転送目的でリダイレクトを使っていいのか 調べた限りサイト移転の説明ばかりでしたので分かりませんでした ・携帯電話からでは302リダイレクト、PCからでは301リダイレクトと使い分けるので問題ないか ・SEO的にこの使い方は問題がないか 以上3点を教えていただけないでしょうか? サイト全体ではSEOもまぁまぁのランクまでいっていますので、これで表示が落ちるようでは困りますので。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • htaccess リダイレクト スマホの振り分け

    htaccessでhttp~.com/にスマホからアクセスが有った際にspindex.htmlへリダイレクトさせたいです。 参考サイトなどを見ているのですが、ドメイン以下全てに適応するようなものばかりで単純にドメインへのアクセスのみに振り分けを効かせたいです。 できればコードを教えて貰えると助かります。

  • .htaccessでGET引数をもとにリダイレクト

    http://test.com/ というサイトがあったとして、.htaccessを用い、 http://test.com/123 というアドレスにアクセスした場合、 http://test.com/sample.php?id=123 にリダイレクトし、 http://test.com/m/123 にアクセスした場合は、 http://test.com/m/sample.php?id=123にリダイレクトさせたいと考えています。 リダイレクト後もアドレスバーのURLは http://test.com/123、あるいは http://test.com/m/123のまま維持しているようにしたいです。 id は常に数字のみで、サーバーはロリポップのチカッパプランです。 上の方は RewriteEngine on RewriteRule ^([0-9]+)$ sample.php?id=$1 としたらなんとなくできているようですが、 「m」のほうは「m」ディレクトリ内に RewriteEngine on RewriteBase /m/ RewriteRule /m/([0-9])$ /m/sample.php?id=$1 と置いても404エラーになってしまいます。 どうしたら良いのでしょうか?

    • ベストアンサー
    • HTML
  • .htaccessを使った、携帯の振り分け

    サイトの.htaccessを使った、携帯とPC用ページの振り分けについてです。 サイト(http://~.com/)にアクセスした時に RewriteEngine on RewriteCond %{HTTP_USER_AGENT} "DoCoMo" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "J-PHONE" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "KDDI" [NC,OR] RewriteCond %{HTTP_USER_AGENT} "UP.Browser" [NC] RewriteRule ^$ m/ [L] と、上のように.htaccessで携帯でアクセスしたときは(http://~.com/m/)飛ばすようにしました。 トップページはうまく表示できたのですが、そこから(http://~.com/m/)以下のディレクトリに行けません。 (パスは絶対パスではなく相対パスです) どうやら(http://~.com/m/)自体に飛んでるのではなく、(http://~.com/)で(http://~.com/m/)の内容を表示しているようです。 (http://~.com/m/)自体に飛ばすにはどうすればいいのでしょうか? よろしくお願いします。

  • .htaccessで携帯とPCの振り分け

     .htaccessで携帯サイトとPCサイトの振り分けで困っています。 .htaccessは以下の通りです。 <IfModule mod_rewrite.c> RewriteEngine On # SoftBank RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} ^Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} ^MOT- [OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank RewriteRule ^$ /mobile/[R=302,L] # DoCoMo RewriteCond %{HTTP_USER_AGENT} ^DoCoMo RewriteRule ^$ /mobile/[R=302,L] # au(HDML-Only) RewriteCond %{HTTP_USER_AGENT} ^UP.Browser RewriteRule ^$ /mobile/[R=302,L] # au(HTML-OK) RewriteCond %{HTTP_USER_AGENT} ^KDDI RewriteRule ^$ /mobile/[R=302,L] </IfModule>  これで、PCからのアクセスはどのページへも正常なのですが、携帯からのアクセスはhttp://example.comですとちゃんと携帯サイトのindex.htmlへいくのですが、http://example.com/***.htmlで携帯からアクセスするとPCサイトのhttp://example.com/***.htmlへつながってしまいます。この場合、携帯サイトのindex.htmlへ導くためにはどのようにすればよいのでしょうか。  また、欲を言えば、PCサイトのそれぞれのページにアクセスしてきた携帯をindex.htmlではなく、携帯サイトのそれぞれの該当するページへと導くためにはどのようにしたらよいのでしょうか。  まったくの初心者ですが、よろしくお願いいたします。

  • htaccessで1つのURLにリダイレクト

    http://yahoo.com/* ↓ http://google.com/ このようなリダイレクトを設定したいのですが、htaccessを触ったことが無いのでわかりません。 Redirect temp / http://google.com/ でやってみたのですが、 http://yahoo.com/hogehoge にアクセスした時に http://google.com/hogehoge に行ってしまいます どのディレクトリからでも http://google.com/ に302リダイレクトする方法を教えていただけないでしょうか。

  • .htaccessでリダイレクト先を指定したい

    初めまして、ご質問させていただきます。 現在新しいホームページを作っていて、 サイトにアクセスしたIPアドレスで表示先を切り替えたいのですが .htaccessのリダイレクト指定で可能なのでしょうか? 例えばhttp://www.hogehoge.com/にアクセスした場合 ↓ 【アクセスが自分以外のPCの場合】 http://www.hogehoge.com/index.html 【アクセスが自分のPCの場合】 http://www.hogehoge.com/index.php ネットで調べていて.htaccessという存在を知り、 色々と調べてみて、分からなかったので質問させていただきました。 参考箇所↓ http://www.shtml.jp/htaccess/redirect.html よろしくお願いいたします。

専門家に質問してみよう