2015年4月2日木曜日

UserAgentでリダイレクトする方法

スマホサイトを作ることも多くなってきており、Bootstrapを使用したレスポンシブもあるけど、PCサイトとスマホサイトがあることも多々あり。 UserAgent(ユーザーエージェント)で切り換えるのは、「Androidのバージョンで読み込ませるCSSを変える」でも近いことをやっているが、リダイレクトをさせるためのメモ。 JavaScriptではindexのheaderにこちらを書き込む。

indexにアクセスしたら、UserAgentで判定してiPod、iPhone、Androidは/sp/にリダイレクトさせるという仕組み。iPadは『== -1』というところで除外されている模様だが、iPadも同様にする場合は『 > 0』にすればいいと思われる。逆にiPadの部分だけ抜いて単独で/tb/とかいうタブレットページを作って対応することも可能か。そんな面倒な事はしないでいいと思うが。 もう一つ、htaccessでの対応も。少し前のUserAgentだが充分使える、はず。
# Options -Indexes
# < IfModule mod_rewrite.c>

# DoCoMo
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} DoCoMo
RewriteRule ^$ http://www.example.com/mb/ [R]

# Softbank
RewriteCond %{HTTP_USER_AGENT} J-PHONE
RewriteRule ^$ http://www.example.com/mb/ [R]
RewriteCond %{HTTP_USER_AGENT} Vodafone
RewriteRule ^$ http://www.example.com/mb/ [R]
RewriteCond %{HTTP_USER_AGENT} SoftBank
RewriteRule ^$ http://www.example.com/mb/ [R]
RewriteCond %{HTTP_USER_AGENT} SMOT
RewriteRule ^$ http://www.example.com/mb/ [R]

# AU KDDI
RewriteCond %{HTTP_USER_AGENT} KDDI
RewriteRule ^$ http://www.example.com/mb/ [R]
RewriteCond %{HTTP_USER_AGENT} UP.Browser
RewriteRule ^$ http://www.example.com/mb/ [R]

# DDI Pocket
RewriteCond %{HTTP_USER_AGENT} DDIPOCKET
RewriteRule ^$ http://www.example.com/mb/ [R]

# WILLCOM
RewriteCond %{HTTP_USER_AGENT} WILLCOM
RewriteRule ^$ http://www.example.com/sp/ [R]

# emobile
RewriteCond %{HTTP_USER_AGENT} emobile
RewriteRule ^$ http://www.example.com/sp/ [R]


# iPod
RewriteCond %{HTTP_USER_AGENT} iPod
RewriteRule ^$ http://www.example.com/sp/ [R]

# iPhone
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule ^$ http://www.example.com/sp/ [R]

# WILLCOM
RewriteCond %{HTTP_USER_AGENT} PDA
RewriteRule ^$ http://www.example.com/sp/ [R]

# Android
RewriteCond %{HTTP_USER_AGENT} Android
RewriteRule ^$ http://www.example.com/sp/ [R]


# PC Internet Explorer Firefox
RewriteCond %{HTTP_USER_AGENT} Mozilla
RewriteRule ^$ http://www.example.com/ [R]

# PC Opera
RewriteCond %{HTTP_USER_AGENT} Opera
RewriteRule ^$ http://www.example.com/ [R]

# Mac Safari
RewriteCond %{HTTP_USER_AGENT} Safari
RewriteRule ^$ http://www.example.com/ [R]

# < /IfModule>
# .htaccess 
これの使用で気をつけないと行けないのは、これを入れる際PC版のindexはどこにあるかという事。 このhtaccessを入れるのがPCのindexがある場所であれば、下3つ「Explorer Firefox」「Opera」「Safari」は#コメントアウトを書けないと、延々リダイレクトを起こしてサイトが表示されなくなってしまう。コレ凄く地味にやばいから入れる際はテストをしてから入れた方が良い。FTPによってはhtaccessが見れない物もあったりするし。

0 件のコメント:

コメントを投稿