• 締切済み

htaccessによる端末ごとによる振り分け

htaccessによる振り分けに関しまして、 PC:/ スマートフォン:/sp/ モバイル:/m/ 端末ごとに振り分けを行いたいです。 ■PC では、/sp/フォルダ、/m/フォルダにアクセスしても、 URLから、各フォルダが除かれ、PCファイルが読み込まれます。 ■スマートフォンでは、/sp/フォルダが入っていないときは、 問題なく、URLに/sp/が加わり、スマートフォンサイトが読み込まれます。 ですが、http://○○.com/m/index.php等でアクセスを行うと、 http://○○.com/sp/m/index.phpのようなURLになります。 ※これは、http://○○.com/sp/index.phpへアクセスしてほしいです。 ■モバイルでは、/m/フォルダが入っていないときは、 問題なく、URLに/m/が加わり、モバイルサイトが読み込まれます。 ですが、http://○○.com/sp/index.php等でアクセスを行うと、 http://○○.com/m/sp/index.phpのようなURLになります。 ※これは、http://○○.com/m/index.phpへアクセスしてほしいです。 ■モバイル・スマートフォンのリダイレクトに関しまして、 改善するためのご意見をお願い致します。 よろしくお願い致します。 ■htaccessの中身です。 RewriteEngine on #スマートフォン RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^(.*)$ sp/$1 [R] #RewriteRule ^(.*)$ sp/ [R] RewriteBase / #モバイル RewriteCond %{REQUEST_URI} !/m/ RewriteCond %{HTTP_USER_AGENT} (DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^(.*)$ m/$1 [R] #RewriteRule ^(.*)$ m/ [R] RewriteBase / #PC RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^sp/(.*)$ $1 [R] #RewriteRule ^sp/(.*)$ / [R] RewriteBase / #PC RewriteCond %{REQUEST_URI} /m/ RewriteCond %{HTTP_USER_AGENT} !(DoCoMo|KDDI|DDIPOKET|UP\.Browser|J-PHONE|Vodafone|SoftBank) RewriteRule ^m/(.*)$ $1 [R] #RewriteRule ^m/(.*)$ / [R] RewriteBase /

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

.htaccess による振り分けは、特別な目的がない限り使用するのは感心しません。 特別な例とは  ソフトバンクのi-phone用のサイトで、他のユーザーエージェントをはじくなどの場合です。  そもそも、 【引用】____________ここから  HTML文書が、ブラウザやプラットフォームの違いを超えてうまく働くべきであるということは、多くが認めるところである。 相互運用性の達成は、コンテンツプロバイダのコストを低下させる。  なぜならただ1種類の文書しか作る必要がなくなるからだ。   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  もし【相互運用性確保の】努力が成されなければ、Webは互換性のないフォーマット毎に分け隔てられた世界に分割され、すべての関係者にとっての商業的可能性が減少することとなるであろう、大きなリスクを負うこととなる。 ・・・【中略】・・・ HTMLは、どんな環境からもWebの情報を利用できるようにすべきだという方針の下に開発されている。例えば、様々な解像度や色深度のグラフィックディスプレイを持つPCや、携帯電話、モバイル機器、音声入出力機器、帯域が広いコンピュータや狭いコンピュータ、等の環境である。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Introduction to HTML 4 (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.2.1 )]より  これが大原則・・・そのために、HTMLを使ってウェブページを作るのです。  その方法では検索エンジンやプリンター、最近のuseragentを送信しないユーザーへの対処が出来ない。  検索エンジンがくろーるした際に、同じコンテンツのページが複数あるとスパムとみなされる危険がある。  もっとも良いのは・・、 ・内容的に共通なコンテンツでデザインのみ変わる場合は、スタイルシートを切り替えます。  640px~1000px幅程度のリキッドでデザインする。  それでもカバーできない場合は、スマホはmedia-queryが使えますからmediaqueryでスタイルシートを変更する。 ・異なるコンテンツのみ、専用のページを作成する。  これが大原則です。 補足)  /sp/、/m/のように、PATH_INFO でページを分岐されているなら、htaccessにて AddType application/x-httpd-cgi index.html  ★下位ホルダーは、AddType text/html index.html としておくこと(必須) として、index.html(実体はCGI)にて、PATH_INFOで書き出すのが効率的です。

専門家に質問してみよう