• 締切済み

.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)を統一してアクセスしてきた端末に応じて指定したページに振分けるようにする方法を以上の方法でやりましたが、何か不具合な点や設定が間違っている点を教えていただきませんでしょうか? 説明不足でわかりにくいかもしれませんがご助力よろしくお願いします。

  • myoom
  • お礼率60% (3/5)

みんなの回答

回答No.2

段階的に原因を切り分けましょう。 まずは.htaccessを削除してアクセスできるかどうか その次は一番上の記述だけテスト みたいな感じでね。

myoom
質問者

お礼

JavaJavax2様 ありがとうございます。 お礼遅くなりまして申しわけありません。 やはりわからないのです。 どうやってもうまくいきませんでした。 残念ですが、何が原因なのかわかりません。 締め切らせていただきます。 回答いただきましたお2人の方へお礼申し上げます。

noname#100277
noname#100277
回答No.1
myoom
質問者

補足

回答いただきましてありがとうございます。 私なりに熟続させていただきました。 解釈が間違っているかもしれませんが。 質問させていただきたいのですが、 1、DirectoryIndex index.html index.cgi index.php index.shtml はTOPページ内には.htaccessがあるのですがそこに記述するのですか? DirectoryIndex index.php だけ記述していますが、それでは駄目だったのですね? 他に記述する事はありますか? 2、各携帯フォルダ(3つ)にある.htaccessがあります。 そこにも DirectoryIndex index.html index.cgi index.php index.shtml と記述すると言う事でしょうか? .htaccessはTOPページだけに設置して各携帯フォルダに設置する必要は無いのでしょうか? 必要であるとすればその場合どう記述すれば良いのかが、わからないのです。 現在、DirectoryIndex index.htmlと記述しておりますが。 3、”携帯端末ではJavascriptは使えませんので、端末(ユーザーエージェント)の判別はCGI(perl)やPHPなどの サーバサイドで動くプログラムで判別する必要があります。しかし、これだと、 http://www.example.com/index.cgi or http://www.example.com/index.php がトップページとなります。” とおっしゃっておられますが、(まず、先に/index.htmlではなく/index.phpにしておくこと?) http://www.example.com/index.php の件ですが、携帯のURLが/index.htmlではなく/index.phpにするのでしょうか? どこをどうする事で携帯のURを/index.htmlではなく/index.phpにする事が出来るのでしょうか? TOPページにPHPファイルがあります。 以上 すみません。正直、理解出来ず、わかるように努力してはいますが、頭が付いていけないようです。 出来ましたら詳細にお教えいただけましたら助かります。 申しわけありません。 よろしくお願いいたします。

関連するQ&A

  • htaccess ユーザーエージェント 振り分け 

    htaccess でユーザーエージェント 振り分けを行いました。http://www.example.com/ 以下に htaccessを入れましたが、PCのSEO対策上問題があるでしょうか? RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ http://www.example.com/i/index.html [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} Vodafone RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} SoftBank RewriteRule ^$ http://www.example.com/s/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ http://www.example.com/e/index.html [R]

    • ベストアンサー
    • 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で携帯と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について

    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の書き方について お教えくださいませんか?

    新たに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を使った、携帯の振り分け

    サイトの.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を使用した携帯端末の振り分けについて

    各キャリア毎に振り分けたいのですが、.htaccessを設置したところでサーバーエラーが起きて行き詰まってしまいました。 現状は下記の記述です。 サイトから見つけて、転送先URLを書き換えただけです。 ------------------------ RewriteEngine On RewriteCond %{HTTP_USER_AGENT} DoCoMo RewriteRule ^$ /i/index.xhtml [R] RewriteCond %{HTTP_USER_AGENT} J-PHONE RewriteRule ^$ /s/index.html [R] RewriteCond %{HTTP_USER_AGENT} Vodafone RewriteRule ^$ /s/index.html [R] RewriteCond %{HTTP_USER_AGENT} UP.Browser RewriteRule ^$ /a/index.html [R] ------------------------------------ 意味を把握して使用していないので、問題点が分からない状態です。 サーバは.htaccess使用可能です。 改善策をお教えいただければ幸いです。

  • .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です。 回答お願いします。

  • 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で携帯自動振り分けを設定したら、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」 どこがいけないのでしょうか? 誰か教えていただけると助かります。 何卒よろしくお願いいたします。