概要
ブラウザから特定の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に当てはまらないものはこちらにアクセスが行きます。