ngx_http_browser_module模块创建了基于浏览器User-Agent的变量,支持以下变量:
$modern_browser
等于modern_browser_value指令设置的值,如果浏览器被定义为现代浏览器。
$ancient_browser
等于ancient_browser_value指令设置的值,如果浏览器被定义为古老浏览器。
$msie
等于“1”,如果是任意版本的IE浏览器。
示例配置
选择一个索引文件:
modern_browser_value "modern."; modern_browser msie 5.5; modern_browser gecko 1.0.0; modern_browser opera 9.0; modern_browser safari 413; modern_browser konqueror 3.0; index index.${modern_browser}html index.html;
为老浏览器重定向:
modern_browser msie 5.0; modern_browser gecko 0.9.1; modern_browser opera 8.0; modern_browser safari 413; modern_browser konqueror 3.0; modern_browser unlisted; ancient_browser Links Lynx netscape4; if ($ancient_browser) { rewrite ^ /ancient.html; }
ancient_browser
语法:ancient_browser string …
默认:—
上下文:http, server, location
如果请求头域“User-Agent”值的任意子串包含定义的字符串,会被认为是古老的浏览器。特殊的字符串“netscape4”相当于正则表达式“^Mozilla/[1-4]”。
ancient_browser_value
语法:ancient_browser_value string
默认:ancient_browser_value 1
上下文:http, server, location
设置$ancient_browser变量的值
modern_browser
语法:modern_browser browser version
modern_browser unlisted
默认:—
上下文:http, server, location
定义从哪个版本开始,浏览器被视为现代浏览器。浏览器可以是下面之一:msie、gecko(基于Mozilla的浏览器)、opera、safari或konqueror。
版本可以按以下方式定义:X, X.X, X.X.X, 或X.X.X.X,每种格式的最大值分别是4000, 4000.99, 4000.99.99, 以及4000.99.99.99。
特殊值unlisted定义了当modern_browser和ancient_browser指令都没有列出时,浏览器被视为现代浏览器,否则浏览器被视作古老浏览器。如果请求头中没有“User-Agent”,则与未列出的处理方法相同。
modern_browser_value
语法:modern_browser_value string
默认:modern_browser_value 1
上下文:http, server, location
设置$modern_browser变量的值。