Module ngx_http_browser_module

The ngx_http_browser_module module creates variables whose values depend on the value of the “User-Agent” request header field:

$modern_browser

  • equals the value set by the modern_browser_value directive, if a browser was identified as modern;

$ancient_browser

$msie

  • equals “1” if a browser was identified as MSIE of any version.

Example Configuration

Choosing an index file:

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;

Redirection for old browsers:

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;
}

Directives

Syntax:ancient_browser string ...;
Default:
Context:http , server , location

If any of the specified substrings is found in the “User-Agent” request header field, the browser will be considered ancient. The special string “ netscape4 ” corresponds to the regular expression “ ^Mozilla/[1-4] ”.

Syntax:ancient_browser_value string;
Default:ancient_browser_value 1;
Context:http , server , location

Sets a value for the $ancient_browser variables.

Syntax:modern_browser browser version;
modern_browser unlisted;
Default:
Context:http , server , location

Specifies a version starting from which a browser is considered modern. A browser can be any one of the following: msie , gecko (browsers based on Mozilla), opera , safari , or konqueror .

Versions can be specified in the following formats: X, X.X, X.X.X, or X.X.X.X. The maximum values for each of the format are 4000, 4000.99, 4000.99.99, and 4000.99.99.99, respectively.

The special value unlisted specifies to consider a browser as modern if it was not listed by the modern_browser and ancient_browser directives. Otherwise such a browser is considered ancient. If a request does not provide the “User-Agent” field in the header, the browser is treated as not being listed.

Syntax:modern_browser_value string;
Default:modern_browser_value 1;
Context:http , server , location

Sets a value for the $modern_browser variables.