備忘録 2017.07.06
(メモ)スマホとPCを判別してリダイレクトする.htaccessの書き方
よく使う.htaccessの記述方法です。
スマホでアクセスした際にスマホ向けサイトにリダイレクト
スマホ向けサイトのURLが第二階層の"sp"の場合。
RewriteEngine On
RewriteCond %{REQUEST_URI} !/sp/.*$
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod|Android.*Mobile|Windows.*Phone) [NC]
RewriteRule ^(.*)$ sp/$1 [R]
RewriteBase /
AndroidスマホとAndroidタブレットを区別するためにユーザーエージェントAndroidの後ろに「.*Mobile」を付与している。Windowsも然り。
PCでスマホ向けサイトにアクセスした際にPC向けサイトにリダイレクト
今度は逆にPCブラウザでスマホ向けサイトにアクセスした際にPC向けサイトにリダイレクトする.htaccessの書き方。
前述の記述に続けて下記を追加する。
RewriteCond %{REQUEST_URI} /sp/.*$
RewriteCond %{HTTP_USER_AGENT} !(iPhone|iPod|Android.*Mobile|Windows.*Phone) [NC]
RewriteRule ^sp/(.*)$ $1 [R]
RewriteBase /
補足
“.*”は任意の文字列を表す表現ですべての文字列にマッチする。
“$1″は変数で、値は前方の”(.*)”に当てはまる部分が代入されている。
RewriteCond、RewriteRuleの末尾に記載されている”[…]”の意味
[NC]・・・大文字小文字を区別しない
[R]・・・強制的にリダイレクト
[L]・・・条件にマッチした場合そこで終了(リダイレクトされるがURLが変わらない)
[OR]・・・後に続く複数のRewriteCond条件をor関係で結ぶ