UserAgentを判定して、UA毎にページをリダイレクトさせてみる

· 2 min read
UserAgentを判定して、UA毎にページをリダイレクトさせてみる

概要

ブラウザから特定のuriへアクセスを行うと、UserAgent(WEBサイトにアクセスしてくる利用者の情報)
を判定して、それぞれのhtmlにリダイレクトが行われるというものです。

↓Chromeでアクセスすると…

 

↓Firefoxでアクセスすると…

仕組みとしては単純ですが、UA毎の判定に使おうと思ってます。

しくみ

今回はCentOS6.7、Apache2.2を使用しました。

1.DocumentRootに移動

# cd /var/www/html/

2.判定用ディレクトリの作成

# mkdir checking
# cd checking

3. .htaccessを作成してUA毎のRewriteルールを作成

# vi .htaccess

RewriteEngine On

# for iPhone 
SetEnvIf User-Agent "iPhone" UA=iphone
RewriteCond %{ENV:UA} ^iphone$
RewriteRule ^(.*)$ apple.html [L]

# for iPad
SetEnvIf User-Agent "iPad" UA=ipad
RewriteCond %{ENV:UA} ^ipad$
RewriteRule ^(.*)$ apple2.html [L]

# for Android
SetEnvIf User-Agent "Android" UA=android
RewriteCond %{ENV:UA} ^android$
RewriteRule ^(.*)$ android.html [L]

# for BlackBerry
SetEnvIf User-Agent BlackBerry UA=BlackBerry
RewriteCond %{ENV:UA} ^BlackBerry$
RewriteRule ^(.*)$ BlackBerry.html [L]

# for Symbian
SetEnvIf User-Agent Symbian UA=Symbian
RewriteCond %{ENV:UA} ^Symbian$
RewriteRule ^(.*)$ Symbian.html [L]

# for Chrome
SetEnvIf User-Agent Chrome UA=Chrome
RewriteCond %{ENV:UA} ^Chrome$
RewriteRule ^(.*)$ Chrome.html [L]

# for Firefox
SetEnvIf User-Agent Firefox UA=Firefox
RewriteCond %{ENV:UA} ^Firefox$
RewriteRule ^(.*)$ Firefox.html [L]

# for MSIE
SetEnvIf User-Agent MSIE UA=MSIE
SetEnvIf User-Agent Trident UA=MSIE
RewriteCond %{ENV:UA} ^MSIE$
RewriteRule ^(.*)$ MSIE.html [L]

# for Edge
SetEnvIf User-Agent Edge UA=Edge
RewriteCond %{ENV:UA} ^Edge$
RewriteRule ^(.*)$ Edge.html [L]

# for Safari
SetEnvIf User-Agent "Macintosh" UA=Safari
RewriteCond %{ENV:UA} ^Safari$
RewriteRule ^(.*)$ Safari.html [L]

# for Opera
SetEnvIf User-Agent Opera UA=Opera
SetEnvIf User-Agent OPR UA=Opera
RewriteCond %{ENV:UA} ^Opera$
RewriteRule ^(.*)$ Opera.html [L]

# for feature
SetEnvIf User-Agent DoCoMo UA=feature
SetEnvIf User-Agent KDDI UA=feature
SetEnvIf User-Agent Vodafone UA=feature
SetEnvIf User-Agent SoftBank UA=feature
RewriteCond %{ENV:UA} ^feature$
RewriteRule ^(.*)$ feature.html [L]

4.リダイレクト先のhtmlファイルを作成する(一例)

# cat apple.html 
<img src="http://i.ebayimg.com/00/s/NTcyWDU3MQ==/z/xKQAAOSw~CRTqA~h/$_32.JPG" width="300" height="300" />

上記はiPhoneでhttp://192.168.2.96/checking/にアクセスすると
iPhoneの画像が表示されるhtmlファイルにリダイレクトされる仕組みになります。

5.リダイレクト条件に当てはまらない用のindex.htmlを作成する

# cat index.html 
Hello World!

rewrite_ruleに当てはまらないものはこちらにアクセスが行きます。