.htaccessファイルを使ってスマートフォンからのアクセスを振り分ける

.htaccessファイルを使ってスマートフォンからのアクセスをスマートフォン用に準備したページに振り分ける

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
RewriteCond %{QUERY_STRING} !mode=pc
RewriteRule ^$ /s/ [R,L]
</IfModule>

【解説】

<IfModule mod_rewrite.c>
RewriteEngine On 
</IfModule>

はURLを書き換える機能「mod_rewriteモジュール」を利用する為の記述

RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]

RewriteCond
URL書き換え処理を実行する条件を指定
%{HTTP_USER_AGENT}
変数「HTTP_USER_AGENT」は、アクセスされた端末のユーザエージェント名(iPhone|Android.*Mobile|Windows.*Phone)
一致パターンを記述(今回は正規表現で複数の文字列を指定)
[NC]
フラグ指定(「大文字・小文字を区別しない」)

RewriteCond %{QUERY_STRING} !mode=pc

RewriteCond
条件指定
%{QUERY_STRING}
変数名「QUERY_STRING」は、URL末尾に付加された「?」記号以降の文字列
!mode=pc
一致パターンを記述(今回は「mode=pc」という文字列がなければという指定)

RewriteRule ^$ /s/ [R,L]

RewriteRule
指定したURLに書き換え(リダイレクト)
RewriteCondの各条件がすべて成立している場合のみ実行される
^$ /s/
http://www.○○○.○○○/s/ へ移動。
[R,L]
「R」はリダイレクトする
「L」は書き換え最終行
という意味。

コメントを残す

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>