htaccess で のモバイル端末振り分け

mod_rewrite での携帯、スマホリダイレクト
意外とハマったのでメモ、
携帯の定数定義はRewriteEngine on の前に行う必要があるみたい。


# keitai
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 ^$ /mobile/ [R=302,L]

#example.com ->www.example.com
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

# iPhone
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule ^$ /m/ [R=302,L]

# Android
RewriteCond %{HTTP_USER_AGENT} Android
RewriteRule ^$ /m/ [R=302,L]