.htaccessの書き方
- http://hoge.jpへの携帯からのアクセスをhttp://hoge.jp/mobileディレクトリへ転送させていますが、http://m.hoge.jpへ転送するにはどう記述を変えれば良いのでしょうか?
- 所定のディレクトリへアクセスさせるには、自分で.htaccessを書く必要があります。(設定画面で設定できません)
- PC・携帯からのhttp://hoge.jpへのアクセスを、それぞれPC:http://www.hoge.jp(/www/)携帯:http://m.hoge.jp(/m/)に振分転送させたいのですが、どうすれば良いですか?
- ベストアンサー
.htaccess の書き方
以下の .htaccess では、http://hoge.jp への携帯からのアクセスを http://hoge.jp/mobile ディレクトリへ転送させていますが、これを、 http://m.hoge.jp へ転送するには、どう記述を変えれば良いのでしょうか? ちなみに、使用予定のレンタルサーバでは、サブドメインつきのリクエストで 所定のディレクトリへアクセスさせるには、自分で .htaccess を書く必要が あるとのことです。(設定画面で設定できません) PC・携帯からのhttp://hoge.jp へのアクセスを、それぞれ PC: http://www.hoge.jp (/www/) 携帯: http://m.hoge.jp (/m/) という具合に振分転送させたいのですが・・・。 -------------------------------------- #携帯振り分け Options +FollowSymLinks RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !^/mobile RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} (J-PHONE|Vodafone|Softbank|MOT-) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (KDDI|UP\.Browser) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (PDXGW|DDIPOKET|WILLCOM) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} L-mode [NC] RewriteRule ^(.*)$ /mobile/$1 [R,L] #「www」ありに統一 RewriteCond %{HTTP_HOST} ^(hoge\.jp)(:80)? [NC] RewriteRule ^(.*)$ http://www.hoge.jp/$1 [R=301,L]
- orenge_mint
- お礼率65% (184/279)
- その他(ITシステム運用・管理)
- 回答数5
- ありがとう数6
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
RewriteBase / #「hoge.jp へ来た訪問者は、携帯の場合は m.hoge.jp へ、」 #と #「www.hoge.jp はPCサイトの設置場所であり、携帯の訪問者が #間違ってきたときは、m.hoge.jp へ301リダイレクトします。」 RewriteCond %{HTTP_HOST} ^hoge.jp$ [OR] RewriteCond %{HTTP_HOST} ^www.hoge.jp$ RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} (J-PHONE|Vodafone|Softbank|MOT-) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (KDDI|UP\.Browser) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (PDXGW|DDIPOKET|WILLCOM) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} L-mode [NC] RewriteRule ^(.*)$ http://m.hoge.jp/$1 [R=301,L] #「携帯でない場合は www.hoge.jp に301リダイレクトします。」 #と #「m.hoge.jp は携帯サイトの設置場所であり、携帯でない訪問者が #間違ってきたときは、www.hoge.jp へ301リダイレクトします。」 RewriteCond %{HTTP_HOST} ^hoge.jp$ [OR] RewriteCond %{HTTP_HOST} ^m.hoge.jp$ RewriteCond %{HTTP_USER_AGENT} !DoCoMo [NC] RewriteCond %{HTTP_USER_AGENT} !(J-PHONE|Vodafone|Softbank|MOT-) [NC] RewriteCond %{HTTP_USER_AGENT} !(KDDI|UP\.Browser) [NC] RewriteCond %{HTTP_USER_AGENT} !(PDXGW|DDIPOKET|WILLCOM) [NC] RewriteCond %{HTTP_USER_AGENT} !ASTEL [NC] RewriteCond %{HTTP_USER_AGENT} !L-mode [NC] RewriteRule ^(.*)$ http://www.hoge.jp/$1 [R=301,L] #そして、www.hoge.jp へ転送されてきた訪問者は、ブラウザ #のアドレス欄は、「www.hoge.jp」のままですが、内部的には #「/home/www/」ディレクトリを参照します。 RewriteCond %{HTTP_HOST} ^www.hoge.jp$ RewriteCond %{REQUEST_URI} !^/home/www/.* RewriteRule ^(.*)$ /www/$1 [L] #「同様に、m.hoge.jp へ転送されてきた訪問者は、ブラウザ #のアドレス欄は、「m.hoge.jp」のままですが、内部的には #「/home/m/」ディレクトリを参照します。」 RewriteCond %{HTTP_HOST} ^m.hoge.jp$ RewriteCond %{REQUEST_URI} !^/home/m/.* RewriteRule ^(.*)$ /m/$1 [L] で、どうでしょう?
その他の回答 (4)
>なにか粗品でも送りたいですが・・・。 ポイントをいただけると、努力した苦労が報われそうです(笑)
お礼
ああ、すいません。少し様子を見ていました。 では、締切させていただきますね。 ほんとにポイントだけでいいのかという気持ちですが・・・。 本当にありがとうございました。 ソース活用させていただきます。
~略~ RewriteRule ^(.*)$ http://www.hoge.jp/$1 [R=301,L] 以下から変更&追加 #そして、www.hoge.jp へ転送されてきた訪問者は、ブラウザ #のアドレス欄は、「www.hoge.jp」のままですが、内部的には #「/www/」ディレクトリを参照します。 RewriteCond %{HTTP_HOST} ^www.hoge.jp$ RewriteCond %{REQUEST_URI} !^/www/.* RewriteRule ^(.*)$ /www/$1\?REWRITED=TRUE [L,QSA] #「同様に、m.hoge.jp へ転送されてきた訪問者は、ブラウザ #のアドレス欄は、「m.hoge.jp」のままですが、内部的には #「/m/」ディレクトリを参照します。」 RewriteCond %{HTTP_HOST} ^m.hoge.jp$ RewriteCond %{REQUEST_URI} !^/m/.* RewriteRule ^(.*)$ /m/$1\?REWRITED=TRUE [L,QSA] #「/home/www/ は、直接アクセスできず、 」 RewriteCond %{HTTP_HOST} ^www.hoge.jp$ RewriteCond %{REQUEST_URI} ^/www/.* RewriteCond %{QUERY_STRING} !^.*REWRITED=TRUE.* RewriteRule ^(.*)$ $1 [R=404,L] #「/home/m/ は、直接アクセスできず、」 RewriteCond %{HTTP_HOST} ^m.hoge.jp$ RewriteCond %{REQUEST_URI} ^/m/.* RewriteCond %{QUERY_STRING} !^.*REWRITED=TRUE.* RewriteRule ^(.*)$ $1 [R=404,L] コードは以上 /home/www/.*を直接RewriteCondで比較して、弾いてしまうと、 RewriteRule ^(.*)$ /www/$1 [L] の行で書き換えたURIも弾いてしまい、結果全てのリクエストが404になってしまうので、 RewriteRule ^(.*)$ /www/$1 [L] を RewriteRule ^(.*)$ /www/$1\?REWRITED=TRUE [L,QSA] として、rewriteした場合に、クエリストリングにフラグを持たせ、 このフラグが入っている場合(内部リダイレクト時)は、 /home/www/*. を参照できるようにしました ただし、下記の件を検討してください 1.http://www.hoge.jp/www/index.html?REWRITED=TRUE と、ブラウザでフラグをつけると見れてしまいます これが、許容できない場合は利用しないで下さい 2.CGI等でREWRITEDをクエリで取得している場合は、別の文字列に変更してください 3.テスト不足ですので、予定通りの動きであるか必ず確認してください で、どうでしょう?(ハァハァ、疲れた)
お礼
ありがとうございます!!!!(お礼が遅くなってすいません) ここまでやってもらえると、なにか粗品でも送りたいですが・・・。 フラグを持たせることなんてできるんですね。 このソースはいろんな人の参考になるんじゃないかと思います。 また、実際に動かしてみることで、とても勉強になりました! 本当にどうもありがとうございました!!
#ホスト名が違う場合、正しいホスト名でリダイレクト RewriteCond %{HTTP_HOST} ^hoge.jp$ [OR] RewriteCond %{HTTP_HOST} ^m.hoge.jp$ RewriteRule ^(.*)$ http://www.hoge.jp/$1 [R=301,L] #携帯かつURIが/m/から始まっていない場合、/m/へリダイレクト RewriteCond %{REQUEST_URI} !^/m/.* RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC,OR] RewriteCond %{HTTP_USER_AGENT} (J-PHONE|Vodafone|Softbank|MOT-) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (KDDI|UP\.Browser) [NC,OR] RewriteCond %{HTTP_USER_AGENT} (PDXGW|DDIPOKET|WILLCOM) [NC,OR] RewriteCond %{HTTP_USER_AGENT} ASTEL [NC,OR] RewriteCond %{HTTP_USER_AGENT} L-mode [NC] RewriteRule ^(.*)$ http://www.hoge.jp/m/$1 [R=301,L] #携帯ではない場合でURIが/www/で始まっていない場合、/www/へリダイレクト RewriteCond %{REQUEST_URI} !^/www/.* RewriteCond %{HTTP_USER_AGENT} !DoCoMo [NC] RewriteCond %{HTTP_USER_AGENT} !(J-PHONE|Vodafone|Softbank|MOT-) [NC] RewriteCond %{HTTP_USER_AGENT} !(KDDI|UP\.Browser) [NC] RewriteCond %{HTTP_USER_AGENT} !(PDXGW|DDIPOKET|WILLCOM) [NC] RewriteCond %{HTTP_USER_AGENT} !ASTEL [NC] RewriteCond %{HTTP_USER_AGENT} !L-mode [NC] RewriteRule ^(.*)$ http://www.hoge.jp/www/$1 [R=301,L] で、どうでしょうか?
補足
ありがとうございます。すごいです。 ただ、こちらの説明が下手なため、希望の動作には なっていません。お手数ですが、あと一声お願いします。 もう一度詳しく書きます。 ■前提条件 訪問者に見えるホスト名は、 hoge.jp www.hoge.jp m.hoge.jp の3種類があり、それぞれ以下のディレクトリに対応させます。 /home/ /home/www/ /home/m/ このうち、/home/www/ と /home/m/ は、直接アクセスできず、 たとえば、/home/www/index.html へアクセスするには、 http://www.hoge.jp でリクエストを出す必要があります。 同様に、/home/m/index.html へアクセスするには、 http://m.hoge.jp でリクエストを出す必要があります。 ■やりたいこと hoge.jp へ来た訪問者は、携帯の場合は m.hoge.jp へ、 携帯でない場合は www.hoge.jp に301リダイレクトします。 www.hoge.jp はPCサイトの設置場所であり、携帯の訪問者が 間違ってきたときは、m.hoge.jp へ301リダイレクトします。 m.hoge.jp は携帯サイトの設置場所であり、携帯でない訪問者が 間違ってきたときは、www.hoge.jp へ301リダイレクトします。 そして、www.hoge.jp へ転送されてきた訪問者は、ブラウザ のアドレス欄は、「www.hoge.jp」のままですが、内部的には 「/home/www/」ディレクトリを参照します。 同様に、m.hoge.jp へ転送されてきた訪問者は、ブラウザ のアドレス欄は、「m.hoge.jp」のままですが、内部的には 「/home/m/」ディレクトリを参照します。 これを実現したいのですが、どういうコードになりますでしょうか。 うまく言えてなかったらすいません。
>http://m.hoge.jp へ転送するには、どう記述を変えれば良いのでしょうか? >RewriteRule ^(.*)$ /mobile/$1 [R,L] を RewriteRule ^(.*)$ http://m.hoge.jp/$1 [R=301,L] かな
補足
ありがとうございます。 ただ、http://m.hoge.jp へアクセスしたときに、 /home/m のディレクトリの読みに行くようなコードも、 うちのサーバの場合 .htaccess に書かなくてはいけないんですが、 それはどう書けば良いでしょうか? http://www.hoge.jp へのアクセスも同じで、 /home/www を読みに行くようにコードを書かなければ いけないのですが、どう書けばいいのかと困っております。 要するに、ブラウザの表示上は、http://www.hoge.jp となっているが、内部的には、/home/www を読んでいる 状態にしたく、振分ルールと同時にそれも記述する必要が あるのですが・・・。
関連するQ&A
- .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で携帯サイトと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 同一URL携帯転送とwww有無統一の両立
RewriteEngine onを使った、 htaccessの書き方について質問させてください。 1.SEOのため、URLは「www」ありに統一させたい。 2.www.○○○.jpとURL直接入力した際、PCにはPC向けのページを、 携帯には携帯向けのページを表示させたい。 この二つの条件を両立するため、下記のとおりhtaccessを書いてみたのですが、携帯からアクセスしても、PCのTOPが無理やり表示されてしまうという結果に終わりました。 どうすればよいのか、ご存知の方お教えください。 --------------------------------------------------------------- RewriteEngine on RewriteCond %{HTTP_HOST} ^ドメイン\.jp RewriteRule (.*) http://www.ドメイン.jp/$1 [R=301,L] 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] RewriteCond %{HTTP_USER_AGENT} ^WILLCOM [NC] RewriteRule ^$ 携帯用URL [R]
- 締切済み
- 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 で携帯とパソコンの振分けを行ったのですが 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を使った、携帯の振り分け
サイトの.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/)自体に飛ばすにはどうすればいいのでしょうか? よろしくお願いします。
- 締切済み
- HTML
- .htaccess で携帯が識別されない
.htaccess でアクセスしたときにPC用のページではなく携帯用 ブログに転送するようにしたいのですが、うまくいきません。 RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC] RewriteRule ^$ http://ochatea.blog63.fc2.com/?m [R] #byDoCoMo RewriteCond %{HTTP_USER_AGENT} J-PHONE [NC,OR] RewriteCond %{HTTP_USER_AGENT} Vodafone [NC,OR] RewriteCond %{HTTP_USER_AGENT} SoftBank [NC] RewriteRule ^$ http://ochatea.blog63.fc2.com/?m [R] #by SoftBank RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC] RewriteRule ^$ http://ochatea.blog63.fc2.com/?m [R] #by au のように書いたのですが 携帯からアクセスしてもPC版のホームページが表示されてしまいます。 また、 Redirect permanent /tea/ http://ochatea.blog63.fc2.com/?m と書いたらページを飛ばすことができたので.htaccess自体は 効いていると思います。 ただ上記だとパソコンからアクセスしてもブログに飛んでしまうので 携帯からアクセスした場合のみブログに飛ばすようにしたいのです。 .htaccessの書き方が問題なのでしょうか。 もしくは携帯のせいなのでしょうか。 ちなみに携帯電話はドコモのn705iです。 回答お願いします。
- 締切済み
- HTML
- htaccessについて
HPサイトを携帯・スマートフォンとPCで振り分けたいのですが、 htaccessがうまく機能してくれません。。 携帯でページを開いてもPC用のページが開きます。 RewriteEngine On RewriteCond %{HTTP_USER_AGENT} UP.Browser [NC] RewriteRule ^$ http:// http://あどれす /mobil/index.html [R] #au RewriteCond %{HTTP_USER_AGENT} DoCoMo [NC] RewriteRule ^$ http:// http://あどれす /mobil/index.html [R] #DoCoMo RewriteCond %{HTTP_USER_AGENT} SoftBank [NC] RewriteRule ^$ http://あどれす /mobil/index.html[R] #SoftBank RewriteCond %{HTTP_USER_AGENT} iPhone [NC] RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #iPhone RewriteCond %{HTTP_USER_AGENT} iPod [NC] RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #iPod RewriteCond %{HTTP_USER_AGENT} Android [NC] RewriteRule ^$ http:// http://あどれす /mobil/index.html[R] #Android 以上を記入したのですが、どうして出来ないのかわかりますでしょうか。 .htaccessはPCのindexと同じ階層です。 PCの階層にmobilのファイルがおいてあります。 よろしくお願いします
- 締切済み
- その他(プログラミング・開発)
- .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で携帯自動振り分けを設定したら、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
補足
ありがとうございます!! ドメインとディレクトリ名の 部分を書き換えたら、ほぼそのままでちゃんと動きました。 (/home はルートですので、/home/www を /www/ に修正してUP しました。そのディレクトリ名ではなぜか動かなかったので、 ディレクト名を、/www.hoge.jp/ 、/m.hoge.jp/ にして再度修正後 UPしたら、ばっちり希望通りの動作になりました) ホントにありがとうございました。 1点質問があるのですが、http://www.hoge.jp でアクセスしたら、 PC用のディレクトリを、http://m.hoge.jp でアクセスしたら、 携帯用のディレクトリを読みに行く部分ですが、書き換え先の http://www.hoge.jp/www や http://m.hoge.jp/m 等は内部用の 構成ですので、直接見せたくなく、このURLへダイレクトに リクエストがあったときは、404エラーを出したいのですが、 これはどう書き加えれば良いでしょうか? 要するに、http://www.hoge.jp/www/abc.html ではなく、 http://www.hoge.jp/abc.html でアクセスさせたいので、 リクエストURIのホスト名以外の部分で、/www/つきのリクエスト が来たときは、「そんなページない」と言いたいのですが・・・。