正規表現で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";
}