いつもお世話になっております。
マニュアルやウェブ検索では自力解決(理解)ができませんでしたので投稿させて頂きます。
現在、携帯電話、スマホ、PCに対応したウェブサイトを作成しているのですが、
.htaccessを利用しデバイス毎に以下のような振り分け処理を行いたいと思っています。
■振り分け処理(実現したい処理)
・対 PCとスマホ
・"mobile"とその配下へのアクセス → contentA/index.htmlにリダイレクト
・"mobile"とその配下以外へのアクセス → そのまま
・対 携帯電話
・"mobile"とその配下へのアクセス → そのまま
・"mobile"とその配下以外へのアクセス → contentA/mobile/index.htmlにリダイレクト
実現したい処理を行うにあたり、下記.htaccessの記述は適切でしょうか。
.htaccess①の対スマホ用処理は、スマホのuser-agentにも携帯電話の
キーワード(DoCoMoなどキャリア名)が含まれる場合に必要かと思い記述しています。
特に気になっている(理解できていない)所は以下の4点です。
・各所フラグの要否。([L]は必要ないのか等)
・処理がループしないか。
・RewriteRuleの(.*)前に^(ハット)の要否。
・.htaccessは1ファイルにまとめて記述できるか。
本来、自分で確かめべきところですが、googleChromeのエミュレータでは
キャリア名を含むスマホのuser-agentが再現できないようなので
このような形で質問させて頂きます。
またそのため、間違いがない様に可能な限り具体的なご回答を頂けますと幸いです。
よろしくお願い致します。
以下、ディレクトリ構成、.htaccessの内容となります。
■ディレクトリ構成------
http://xxxx.com/
└ contentA (ディレクトリ)
├ index.html
├ .htaccess ・・・①
├ page01.html
├ page02.html
└ mobile (ディレクトリ)
├ index.html
├ .htaccess ・・・②
├ page03.html
└ page04.html
■.htaccess①の内容------
対 スマホ
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) [NC]
RewriteRule (.*) $1 [R]
対 携帯電話
RewriteCond %{HTTP_USER_AGENT} (DoCoMo|J-PHONE|Vodafone|SoftBank|MOT-|UP.Browser|KDDI|PDXGW) [NC]
RewriteRule (.*) http://xxxx.com/contentA/m/index.php [R]
対 PC
処理なし
■.htaccess②の内容------
対 PCとスマホ
RewriteCond %{HTTP_USER_AGENT} !(DoCoMo|J-PHONE|Vodafone|SoftBank|MOT-|UP.Browser|KDDI|PDXGW) [NC]
RewriteRule (.*) http://xxxx.com/contentA/ [R]
対 携帯電話
処理なし
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。