htaccessによるデバイス振り分け

ある案件で全ページ切り替えたいというのがあったので…
スマホ→PC
でも
スマホ←PC
でもいけるようにするイメージです。

そのHPは元々トップページのみjsで切り替えてたんですが、それだとスマホのURL(/sp/など)
でPCでアクセスするとそのままスマホ版のページの表示になってしまうし、
下層(/privacy/とか)ページでの切り替えがまったくできないのでよろしくないって事でやってみました。


PC : http://sample.com/
SP : http://sample.com/sp/

だったとします。

RewriteEngine on
はURLの切り替えを可能にしますよ~
て意味です。

RewriteCond %{REQUEST_URI} !/sp/
は!/sp/なので/sp/が含まれていなかったら

RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone)
該当するデバイスだった場合、

RewriteRule ^(.*)$ sp/$1 [R]
RewriteRuleこれはどういうものに切り替えるかなので
ファイル名の前にsp/を足したURLにする。

RewriteBase /
終了。って感じです。

これでPC→SPはオッケーです。
次にSP→PCです。

RewriteCond %{REQUEST_URI} /sp/
は/sp/なので/sp/が含まれていて

RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|iPad|Android|Windows\ Phone)
該当するデバイス以外だった場合

RewriteRule ^(.*)$ sp/$1 [R]
RewriteRuleこれはどういうものに切り替えるかなので
ファイル名の前にsp/を足したURLにする。

RewriteBase /
終了。って感じです。

これで普通だったらいけるんですが、
その時の案件が

PC : http://sample.com/test/
SP : http://sample.com/sp/test.php

みたいな感じで、下層ページのスマホだけphpファイルだったので、
1ページづつ書くしぐらいしか思いつきませんでした…

なので、

これで


PC : http://sample.com/
SP : http://sample.com/sp/

PC : http://sample.com/test/
SP : http://sample.com/sp/test.php

がいけるようになります。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です