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