2012年7月3日火曜日

.htaccessで行うUserAgent判別

  • このエントリーをはてなブックマークに追加

前回JavascriptによるUserAgent判別という記事を書いたけれども、
今回はガラケーの振り分けも行わないといけないとのこと。
ガラケーではjsは使えないし、phpを使わないサイトであるので、
.htaccessを使って振り分けをしようと思った。
ということで書いたものはこんな感じ。



ちなみに今回のサイト構成は下記のような感じ。
hogehoge.com/test/
hogehoge.com
 ∟hogehoge.com/m/
  ∟hogehoge.com/m/test/
 ∟hogehoge.com/sp/
  ∟hogehoge.com/sp/test/


hogehoge.com上におく.htaccess

SetEnvIf User-Agent "DoCoMo" UA=mobile
SetEnvIf User-Agent "UP\.Brower" UA=mobile
SetEnvIf User-Agent "KDDI-" UA=mobile
SetEnvIf User-Agent "J-PHONE" UA=mobile
SetEnvIf User-Agent "Vodafone" UA=mobile
SetEnvIf User-Agent "SoftBank" UA=mobile
SetEnvIf User-Agent "emobile" UA=mobile
SetEnvIf User-Agent "WILLCOM" UA=mobile
SetEnvIf User-Agent "DDIPOCKET" UA=mobile
SetEnvIf User-Agent "iPhone" UA=sp
SetEnvIf User-Agent "Android" UA=sp

RewriteEngine On

# Redirect if mobile
RewriteCond %{REQUEST_URI} !^/m.*
RewriteCond %{ENV:UA} ^mobile$
RewriteRule ^(.*)$ /m/$1 [R,L]

# Redirect if smart phone
RewriteCond %{REQUEST_URI} !^/sp.*
RewriteCond %{ENV:UA} ^sp$
RewriteRule ^(.*)$ /sp/$1 [R,L]


hogehoge.com/m/上におく.htaccess

RewriteEngine On

# Redirect if pc
RewriteCond %{ENV:UA} !^mobile$
RewriteCond %{ENV:UA} !^sp$
RewriteRule ^(.*)$ /$1 [R,L]

# Redirect if smart phone
RewriteCond %{ENV:UA} ^sp$
RewriteRule ^(.*)$ /sp/$1 [R,L]


hogehoge.com/sp/上におく.htaccess

RewriteEngine On

# Redirect if pc
RewriteCond %{ENV:UA} !^mobile$
RewriteCond %{ENV:UA} !^sp$
RewriteRule ^(.*)$ /$1 [R,L]

# Redirect if mobile
RewriteCond %{ENV:UA} ^mobile$
RewriteRule ^(.*)$ /m/$1 [R,L]


こんな感じであればhogehoge.comにアクセスした際に、
スマフォだったらhogehoge.com/sp/
ガラケーだったらhogehoge.com/m/に飛ぶ。

ちなみにhogehoge.com/test/にアクセスした際に、
スマフォだったらhogehoge.com/sp/test/
ガラケーだったらhogehoge.com/m/test/に飛ぶ。

参考にさせていただいたサイト↓
.htaccess だけで簡単キャリア判定してみる | バシャログ。

Adsense