nginx 映射正则表达式以检测旧的 android 浏览器
nginx map regex to detect old android browsers
我有以下映射 nginx 设置:
map $http_user_agent $old_browser {
default 0;
"~Android [1-2]\." 1;
"~Mozilla.*Firefox/1[0-9]\." 1;
"~Chrome/2[0-9]\." 1;
"~AppleWebKit.*Version/[1-4]\..*Safari" 1;
}
我想使用此设置重定向旧的 Android 浏览器,但是在 An Android 4.2.2 上测试它时,$old_browser 被标记为 1。这是为什么?
这是完整的用户代理
Mozilla/5.0(Linux; U; Android 4.2.2; en-us; SM-T110 Build/JDQ39)
AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
以下正则表达式有什么问题:
"~Android [1-2]\."
为什么匹配Android 4.2.2
这匹配:“~AppleWebKit.*版本/[1-4]..*Safari" 1;
Mozilla/5.0(Linux; U; Android 4.2.2; zh-cn; SM-T110 Build/JDQ39)
AppleWebKit/534.30(KHTML,如 Gecko)Version/4.0 移动 Safari/534.30
我有以下映射 nginx 设置:
map $http_user_agent $old_browser {
default 0;
"~Android [1-2]\." 1;
"~Mozilla.*Firefox/1[0-9]\." 1;
"~Chrome/2[0-9]\." 1;
"~AppleWebKit.*Version/[1-4]\..*Safari" 1;
}
我想使用此设置重定向旧的 Android 浏览器,但是在 An Android 4.2.2 上测试它时,$old_browser 被标记为 1。这是为什么?
这是完整的用户代理
Mozilla/5.0(Linux; U; Android 4.2.2; en-us; SM-T110 Build/JDQ39)
AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
以下正则表达式有什么问题:
"~Android [1-2]\."
为什么匹配Android 4.2.2
这匹配:“~AppleWebKit.*版本/[1-4]..*Safari" 1;
Mozilla/5.0(Linux; U; Android 4.2.2; zh-cn; SM-T110 Build/JDQ39) AppleWebKit/534.30(KHTML,如 Gecko)Version/4.0 移动 Safari/534.30