いわゆる、携帯ブラウザをUser-Agentで判別する話。
各社User-Agentは公開しているので、それを参考にするといくつかの条件で判別ができるようになります。
コンテンツの振り分けは、各キャリアが提供する接続もとIPベースでもできますが、そこまで完璧に携帯だけに限定する必要も無ければこっちのほうが簡単だし、またキャリア側のIPが増えたりした際の対応が無いのがよい。(IP増えたことなんてどうやって気づくんだって話)
User-Agentが
DoCoMo
「DoCoMo」で始まる。
au
「KDDI」で始まる・・・・・・・HDML機種
「UP.Browser」で始まる・・WAP機種
Softbank
「Vodafone」を含む
「J-PHONE」を含む
「MOT」を含む
「SoftBank」を含む
WILLCOME
「WILLCOME」を含む
「DDIPOCKET」を含む
となります。
なので、mod_rewriteの設定としては
BrowserMatch ^DoCoMo carrier=docomo
BrowserMatch ^KDDI carrier=au_hdml
BrowserMatch ^UP.Browser carrier=au_wap
BrowserMatch Vodafone icarrier=softbank
BrowserMatch J-PHONE carrier=softbank
BrowserMatch MOT- carrier=softbank
BrowserMatch SoftBank carrier=softbank
BrowserMatch WILLCOM carrier=willcom
BrowserMatch DDIPOCKET carrier=willcom
RewriteEngine On
RewriteCond %{ENV:carrier} ^(docomo|au_hdml|au_wap|softbank|willcom)$
RewriteRule ^/?$ リダイレクト先のURL [R]
で、さらにキャリア毎だったり、HDMLとWAP分けたりもRewriteCondをチョイチョイとすると
RewriteEngine On
RewriteCond %{ENV:carrier} ^(docomo|au_wap|softbank|willcom)$
RewriteRule ^/?$ リダイレクト先のURL [R]
RewriteCond %{ENV:carrier} ^(au_hdml)$
RewriteRule ^/?$ HDML用コンテンツリダイレクト先のURL [R]
以上