マルチプラットホームのサイトを構築する場合、PC版とスマホ版あるいはガラケー版のコンテンツを自動判別する必要があります。
機種の判別にはブラウザの情報すなわちユーザエージェント(User_agent)を用いるのが一般的です。PHPなどのプログラムでユーザエージェントと文字列をマッチングさせ、機種に適したディレクトリに遷移させたり、コンテンツを読み込んだりします。
プログラムで機種判別する以外にはApacheのmod_rewriteモジュールを用いる方法があります。mod_rewriteはApache設定の一部として.htaccessファイルに記述することが可能で、格納したディレクトリ配下にすべて適用されますので、機種判別用プログラムをインクルードする必要がなく、静的なHTMLコンテンツなどでも有効です。
以下に設定例を示します。
-----------------------------------
## mod_rewriteを使用することを宣言
RewriteEngine On
## ユーザエージェントに含まれる文字列を判別して変数にタイプをセットします
# ガラケーと判断
SetEnvIf User-Agent "DoCoMo" TYPE=m
SetEnvIf User-Agent "UP.Brower" TYPE=m
SetEnvIf User-Agent "KDDI-" TYPE=m
SetEnvIf User-Agent "J-PHONE" TYPE=m
SetEnvIf User-Agent "Vodafone" TYPE=m
SetEnvIf User-Agent "SoftBank" TYPE=m
SetEnvIf User-Agent "emobile" TYPE=m
SetEnvIf User-Agent "WILLCOM" TYPE=m
SetEnvIf User-Agent "DDIPOCKET" TYPE=m
# スマートフォンと判断
SetEnvIf User-Agent "BlackBerry" TYPE=s
SetEnvIf User-Agent "Windows Phone" TYPE=s
SetEnvIf User-Agent "iPhone" TYPE=s
SetEnvIf User-Agent "iPod" TYPE=s
SetEnvIf User-Agent "iPad" TYPE=s
SetEnvIf User-Agent "Android" TYPE=s
# マッチしなかった場合はリダイレクトせずPCとして扱うことにします
## リダイレクト処理
# ガラケー版
# 条件1:リダイレクト先は除外 かつ
# 条件2:TYPE変数がmだったら
# /m/にリダイレクト
RewriteCond %{REQUEST_URI} !^/m/*
RewriteCond %{ENV:TYPE} ^m$
RewriteRule ^(.*)$ /m/ [R,L]
# スマホ版その1
# 条件1:リダイレクト先は除外 かつ
# 条件2:TYPE変数がsだったら
# /s/にリダイレクト
RewriteCond %{REQUEST_URI} !^/s/*
RewriteCond %{ENV:TYPE} ^s$
RewriteRule ^(.*)$ /s/ [R,L]
# スマホ版その2
# 条件1:リダイレクト先は除外 かつ
# 条件2:TYPE変数がsだったら
# URLはそのままで/s/にリダイレクト
RewriteCond %{REQUEST_URI} !^/s/*
RewriteCond %{ENV:TYPE} ^s$
RewriteRule ^(.*)$ /s/ [L]
#スマホ版その3
# 条件1:リダイレクト先は除外 かつ
# 条件2:TYPE変数がsだったら
# /s/"元の/以下"にリダイレクト
RewriteCond %{REQUEST_URI} !^/s/*
RewriteCond %{ENV:TYPE} ^s$
RewriteRule ^(.*)$ /s/$1 [R,L]
-----------------------------------
コメント