.htaccessでPCサイトとスマートフォンサイト切り替え ITかあさん

ITかあさん

.htaccessでPCサイトとスマートフォンサイト切り替え


.htaccessでスマートフォンサイトへリダイレクト

jQuerymobileでサイトを作って公開したら、スマートフォンサイトでPCサイトにアクセスしてきたら
PC版サイトのフォルダ直下に以下のコードを.htaccessとして設置します。
ここではhttp://smp.example.com/をスマートフォンサイトURLと仮定して、
スマートフォンがPCサイトへアクセスしてきた場合、スマートフォン版のURLへリダイレクトする方法です。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^smp.*$
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android|BlackBerry|Windows.Phone) [NC]
#ipadはPC版に。
RewriteCond %{HTTP_USER_AGENT} !iPad [NC]
RewriteRule ^$ http:\/\/smp.example.com\/ [R=301,L]

.htaccessでスマートフォンサイトからPCサイトへの切り替えリンク

ただし、上記の場合だとスマートフォンサイトからPCサイトを閲覧したい場合も問答無用でリダイレクトされてしまうので、
PCサイトへの切り替えリンクのURLには以下のようにパラメータを付与してあげます。

http://smp.example.com/?viewmode=pc

viewmode=pcのパラメータを持っていた場合はリダイレクトを行わないという.htaccessの記述を加えればOKです。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^smp.*$
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android|BlackBerry|Windows.Phone) [NC]
#ipadはPC版に。
RewriteCond %{HTTP_USER_AGENT} !iPad [NC]
#viewmode=pc パラメータ持っていた場合はリダイレクトしない
RewriteCond %{HTTP_COOKIE} !viewmode=pc
RewriteCond %{QUERY_STRING} !viewmode=pc

RewriteRule ^$ http:\/\/smp.example.com\/ [R=301,L]