ngx_http_browser_module

ngx_http_browser_module 模块创建值由 User-Agent 请求头域决定的变量:

  • $modern_browser

    如果浏览器被识别为现代,则等于 modern_browser_value 指令设置的值

  • $ancient_browser

    如果浏览器被识别为古代,则等于由 ancient_browser_value 指令设置的值

  • $MSIE

    如果浏览器被识别为任何版本的 MSIE,则等于 1

示例配置

选择一个索引文件:

  1. modern_browser_value "modern.";
  2. modern_browser msie 5.5;
  3. modern_browser gecko 1.0.0;
  4. modern_browser opera 9.0;
  5. modern_browser safari 413;
  6. modern_browser konqueror 3.0;
  7. index index.${modern_browser}html index.html;

旧浏览器重定向:

  1. modern_browser msie 5.0;
  2. modern_browser gecko 0.9.1;
  3. modern_browser opera 8.0;
  4. modern_browser safari 413;
  5. modern_browser konqueror 3.0;
  6. modern_browser unlisted;
  7. ancient_browser Links Lynx netscape4;
  8. if ($ancient_browser) {
  9. rewrite ^ /ancient.html;
  10. }

指令

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

指定将浏览器视为现代版本开始的版本。浏览器可以是以下任何一种:msiegecko(基于 Mozilla 的浏览器)、operasafarikonqueror

版本可以是以下列格式:X、X.X、X.X.X 或 X.X.X.X。每种格式的最大值分别为 4000、4000.99、4000.99.99 和 4000.99.99.99。

未列出的特殊值如果未被 modern_browserancient_browser 指令指定,则将其视为现代浏览器。否则被认为是传统浏览器。如果请求没有在头中提供 User-Agent 域,则浏览器被视为未列出。

modern_browser_value

- 说明
语法 modern_browser_value string;
默认 modern_browser_value 1;
上下文 http、server、location

设置 $modern_browser 变量的值。

原文档

http://nginx.org/en/docs/http/ngx_http_browser_module.html