エロサイトの作り方

2013年11月から勉強しながらエロサイトを作っています。

正規表現でUser AgentからAndroidのスマホとタブレットを切り替える

AndroidのUser Agent文字列

スマホ(Nexus 5)

Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19

タブレットNexus 7 2013)

Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36

誰だよ、この区別付きにくい構成にしたやつ!

正規表現

スマホは、Androidが含まれていて、かつ、Mobileを含む

Android.+Mobile

タブレットは、Androidが含まれていて、かつ、行末までにMobileを含まない

Android((?!Mobile).)+$

Nginxでは……

set $mobile '';
if ($http_user_agent ~* '(DoCoMo|J-PHONE|Vodafone|MOT-|UP\.Browser|DDIPOCKET|ASTEL|PDXGW|Palmscape|Xiino|sharp pda browser|Windows CE|L-mode|WILLCOM|SoftBank|Semulator|Vemulator|J-EMULATOR|emobile|mixi-mobile-converter)') {
  set $mobile '@ktai';
}
if ($http_user_agent ~* '(iPhone|iPod|incognito|webmate|Android.+Mobile|dream|CUPCAKE|froyo|BlackBerry|webOS|s8000|bada|IEMobile|Googlebot\-Mobile|AdsBot\-Google)') {
  set $mobile '@smartphone';
}
if ($http_user_agent ~* '(iPad|Android((?!Mobile).)+$)') {
  set $mobile "@tablet";
}

これでガラケースマホタブレットが区別できると思う。