- ベストアンサー
.htaccessでPCと携帯サイトを振り分ける方法
noname#133724の回答
- ベストアンサー
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]
関連するQ&A
- .htaccessで携帯サイトとPCサイトの振り分けについて
.htaccessで携帯サイトとPCサイトの振り分けについて お世話になります。 .htaccessで携帯サイトとPCサイトの振り分けで困っています。 現在、index.phpで携帯サイトとPCサイトの振り分けしています。この場合、PCサイトのトップページがindex.htmlではなく他の名前にしなくてはならないようで、現在はpc.htmlにしています。 どうにかpc.htmlではなく、index.htmlのまま携帯サイトとPCサイトの振り分けをしたいのです。 .htaccessであればできそうなので、いろいろと調べながら試したのですがうまくいきませんでした。 使用しているサーバーはさくらのレンタルサーバーで、ライトプランです。 mod_rewriteは入ってると記載してありました。.htaccessもOKなようです。 以下のように.htaccessファイルに記述して試しました。 例1) RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Up.Browser [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^DDIPOCKET [NC] RewriteRule ^$ abc.com/m/ [R] 例2) Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ http://www.abc.com/m/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ http://www.abc.com/m/index.html [R] 素人ですので、できましたら記述全文教えていただけるとありがたいです。 宜しくお願い致します。
- ベストアンサー
- HTML
- .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が機能していない?
.htaccessを初めて使用します。 利用法はサイトにきた人を携帯用とPC用に振り分けるためです。 ファイル構成は以下のようにしました。 www ├.htaccess ├index.html(PC用) └mobile─index.php(携帯用) 環境 さくらインターネット/スタンダードプラン 記述 RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ /mobile/ [R] RewriteCond %{HTTP_USER_AGENT} KDDI [OR] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ /mobile/ [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE [OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [OR] RewriteCond %{HTTP_USER_AGENT} MOT- RewriteRule ^$ /mobile/ [R] しかし全く機能せず、全てPC用のトップにとんでしまいます。 .htaccessが機能しているかも怪しく、.htaccessに日本語を入力してもエラーすら出ません。 エラーも出ないので何が起きているかもわかりません。 .htaccessが機能しているかどうかの確認の方法と、何か考えられることがあれば教えてください。
- ベストアンサー
- その他([技術者向] コンピューター)
- .htaccess による携帯からのアクセスの振り分け方について教えてください。
お世話になります。 急遽すぐに解決しなくてはならなくて、困っています。 よろしくお願いいたします。 .htaccess による携帯からのアクセスの振り分け方について教えてください。 .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} UP.Browser RewriteRule ^$ /mobile/index.html [R] ---------------------------------------------------------------- こちらは問題なく動作するのですが、これですとPCで見た場合自動的にディレクトリ内の直下のindex.html に移動してしまいます。 PCで見た場合も別のファイルに移動させたいのですが、その場合どのように記述したらよいでしょうか? よろしくお願いいたします。
- ベストアンサー
- CGI
- htaccessでの携帯サイトの振り分けについて
サイトを色々探し回り、以下の様な内容をhtaccessに記入して携帯サイトの振り分けをしています。 RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DoCoMo.* [OR] RewriteCond %{HTTP_USER_AGENT} ^KDDI.* [OR] RewriteCond %{HTTP_USER_AGENT} ^Vodafone.* [OR] RewriteCond %{HTTP_USER_AGENT} ^SoftBank.* [OR] RewriteCond %{HTTP_USER_AGENT} ^J-PHONE.* [OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla.+DDIPOCKET.* RewriteRule ^$ http://hogehoge.com/cgi/mt/mt4i.cgi [R,L] ところが、この方法だと、「http://hogehoge.com/」でアクセスした場合にはきちんと携帯サイトへ飛びますが、個別記事へのアクセスの場合には振り分けられません。 たとえば、http://hogehoge.com/blog/2007/05/29-1509.phpなどの個別記事に対応させたい場合にはどうしたら良いのでしょうか? http://hogehoge.com/の後にどんな文字列が来てもリダイレクトされるような記述を教えてください。
- ベストアンサー
- HTML
- .htaccessによる携帯のアクセス振分けについて
.htaccessによる携帯のアクセス振分けについて .htaccess で携帯とパソコンの振分けを行ったのですが http://*******.com/ を携帯からアクセスした場合はちゃんと携帯サイトへ振り分けられますが http://*******.com/index.html と ドメインの後ろにファイル名が入ったURLに アクセスすると振分けが行われずパソコンのサイトを表示してしまいます 参考サイトには 「「.htaccess」ファイルは設置したディレクトリ以下全てに影響します。」 と書いてあります 参考サイト: http://www.w3lab.jp/htac/keitai.html どのファイルやディレクトリにアクセスをしても 携帯サイトに振り分けられるようにしたいのですが どのようにしたらいいでしょうか? よろしくお願いいたします .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} UP.Browser RewriteRule ^$ /mobile/index.html [R] ------------------------------------------------------------
- ベストアンサー
- HTML
- .htaccessで携帯自動振り分けを設定したら、MT4iへ飛ばない
どうしてもうまくいかなくて悩んでいます。。。 MT4iを設置し、 http://www.mydomain.com/x/blog/mt4i.cgi?id=1 にアクセスすると無事携帯電話からもPCからもブログを読むことができるようになりました。 そこで、次に携帯電話からPC用サイトのトップページ http://www.mydomain.com/ に飛んできた時に、携帯用サイトのトップページ http://www.mydomain.com/m/index.html に自動振り分けするよう、.htaccessを以下のように記述し、public_htmに設置しました。 ---------- RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [NC,OR] RewriteCond %{HTTP_USER_AGENT} MOT- [NC,OR] RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC,OR] RewriteCond %{HTTP_USER_AGENT} KDDI [NC,OR] RewriteCond %{HTTP_USER_AGENT} DDIPOCKET [NC,OR] RewriteCond %{HTTP_USER_AGENT} WILLCOM [NC,OR] RewriteCond %{HTTP_USER_AGENT} L-mode [NC,OR] RewriteRule ^$ http://www.mydomain.com/m/index.html [R] ---------- すると、今までアクセスできていた携帯用のMT4iブログ http://www.mydomain.com/x/blog/mt4i.cgi?id=1 に以下のようなメッセージが出て、アクセス拒否されてしまうようになってしまいました。 ・IEでアクセスする:「Web サイトによってこのページの表示を拒否されました HTTP 403 」 ・Operaでアクセス:「403 Forbidden」 どこがいけないのでしょうか? 誰か教えていただけると助かります。 何卒よろしくお願いいたします。
- 締切済み
- レンタルサーバ・ASP
- htaccessの書き方について お教えくださいませんか?
新たにwordpress にてホームページを作成しようと思うのですが、そこでお教えいただきたいのが、 htaccessの書き方 をどうすればいいかお教えくださいませんか? 今まで、レンタルサーバーを借りて ホームページ運用をしていました。 その際、仮に http://www.aaaa.com/ がメインのページとして、 携帯用のサイトを http://www.aaaa.com/i/としていました。 そして、 htaccess を設置して、携帯から http://www.aaaa.com/ にアクセスがあった場合 http://www.aaaa.com/i/ に誘導するようにしておりました。 (今回携帯サイトは、ワードプレスで運用はしません。サーバーにiフォルダーを作成しhtmlを保存するだけです) (1)そのhtaccessの記述が 以下です。 RewriteEngine On # DoCoMo RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC] RewriteRule ^$ http://aaaa.com/i/index.html [R] # SoftBank RewriteCond %{HTTP_USER_AGENT} J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [NC] RewriteRule ^$ http://aaaa.com/i/index.html [R] # au RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC] RewriteRule ^$ http://aaaa.com/i/index.html [R] (2)また、ワードプレスにも最初から以下のhtaccessの記述があります。 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress ★この (1)と(2)を同じ場所に設置する場合、htaccessの記述を 足して書く必要が、あると思いますが、初心者でもあり どう書いていいのか わかりません。 どのように、記述すればよいのでしょうか? お知恵を拝借いただけたら 光栄です。
- ベストアンサー
- CGI
- .htaccessでの携帯サイト振り分け方法について
大変困っています。幾日もかかっていますのでどなたかご助力ください。 携帯電話専用のホームページを作成しました。 ホームページのアドレス(URL)を統一してアクセスしてきた端末に応じて指定したページに振分けるようにしたいのです。 「.htaccessでの携帯サイト振り分け方法」はネットで探せば随分出てきますが、どの方法をとってもうまくいきません。 例えば http://www.xxxxxxx.com/ というアドレスが私のアドレスとしてそれでアクセスするとエラー表示(403) http://www.xxxxxxx.com/index.htmlのindexを付けるとTOPページに行きます。 携帯でテストしてもエラーです。 本来の目的は http://www.xxxxxxx.com/ でアクセスして振り分けることです。 PHPを使えるサーバーでしたので、PHPでやっても同じでした。 何が原因なのかわからなくなっています。 この携帯サイトはソフトを使って作成しました。 <サイト内の構造> TOPページにある index.html(元々i.ez.sへリンク表示のみ。私はmetaタグにPCから来た人へ他アドレスにあるPCへリダイレクトするようにしました) 下層には i(Dokomoのフォルダ)、ez(auのフォルダ)、s(softbankのフォルダ)がありそれぞれindex, 画像が入っています。 構造は以上です。htaccessでおこなったことは、下記内容です。 1.TOPの「index.html」に下記の記述を「htaccess.txt」と言う名前で保存。(xxxxxxは自アドレスに変更) ---------------------------------------------------------------- -RewriteEngine On RewriteCond %{REQUEST_URI} !^/i/ RewriteCond %{HTTP_USER_AGENT} "DoCoMo" [NC,OR] RewriteRule ^(.*)$ http://xxxxxxx.co.jp/i/ [R,L] RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC] RewriteRule ^$ http://www.example.com/i/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [NC] RewriteRule ^$ http://www.example.com/v/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC] RewriteRule ^$ http://www.example.com/ez/index.html [R] --------------------------------------------------------------- 2.アップロード後「.htaccess」に名前を変更。「604」に変更。 .htaccess はTOPindex.html のみでi.ez.s各フォルダ内のindex.htmlにはおかなくても良いのですね?(あるサイトで見たものですから) http://www.xxxxxxx.com/ と言う自サイトのホームページのアドレス(URL)を統一してアクセスしてきた端末に応じて指定したページに振分けるようにする方法を以上の方法でやりましたが、何か不具合な点や設定が間違っている点を教えていただきませんでしょうか? 説明不足でわかりにくいかもしれませんがご助力よろしくお願いします。
- 締切済み
- レンタルサーバ・ASP
- mod_rewriteで携帯/PCサイト振り分けの記述について
現在PCサイトを持っていまして、このサイトの携帯版を作りました。 そこでmod_rewriteを使って.htaccessへの記述でお伺いします。 (mod_rewritは借りているサーバーにインストールされています)。 現在のPCサイトは、 http://www○○○.com/です。 携帯サイトは、 DoCoMo:http://www○○○.com/mobaile/i/ Softbank:http://www○○○.com/mobaile/v/ au: http://www○○○.com/mobaile/ez/ です。 ■携帯振り分けの.htaccessは下記のとおりなのですが、これであっていますか?オプションなども大丈夫でしょうか? RewriteEngine On #DoCoMo端末へのリンク RewriteCond %{HTTP_USER_AGENT} ^DoCoMo RewriteRule ^$ http://www○○○.com/mobile/i/[L] #Vodafone、J-Phone、Softbank端末へのリンク RewriteCond %{HTTP_USER_AGENT} ^vodafone [OR] RewriteCond %{HTTP_USER_AGENT} ^softbank [OR] RewriteCond %{HTTP_USER_AGENT} ^J-PHONE RewriteRule ^$ http://www○○○.com/mobile/v/[L] #KDDI、au端末へのリンク RewriteCond %{HTTP_USER_AGENT} ^KDDI [OR] RewriteCond %{HTTP_USER_AGENT} ^Up.Browser RewriteRule ^$ http://www○○○.com/mobile/ez/[L] ■また、PCでアクセスした場合のRewriteCondの書き方がわかりません。 上記以外の場合はPCサイト:http://www○○○.com/にアクセスするにはどのようにしたらよいのでしょうか? お手数ですがおわかりの方がいましたらよろしくお願いします。
- 締切済み
- CGI
お礼
教えていただいた記述でテスト成功しました。 おかげさまで、やりたい事がクリア出来ました。 大変助かりました。ありがとうございます。 どうも2行目がミソのようですね。 もっと勉強して、きちんと理解したいと思います。