Mercurial > hg > nginx-site
diff xml/ru/docs/http/ngx_http_map_module.xml @ 572:17ceffcc7ffb
Brought the ngx_http_map_module documentation up to date.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Thu, 05 Jul 2012 13:15:08 +0000 |
parents | 9913f1d51c07 |
children | be54c443235a |
line wrap: on
line diff
--- a/xml/ru/docs/http/ngx_http_map_module.xml +++ b/xml/ru/docs/http/ngx_http_map_module.xml @@ -32,6 +32,11 @@ map $http_host $name { .example.net 3; wap.* 4; } + +map $http_user_agent $mobile { + default 0; + "~Opera Mini" 1; +} </example> </para> @@ -42,20 +47,58 @@ map $http_host $name { <directive name="map"> <syntax block="yes"> - <value>$переменная1</value> - <value>$переменная2</value></syntax> + <value>строка</value> + <value>$переменная</value></syntax> <default/> <context>http</context> <para> -Создаёт переменную, значение которой -зависит от значения исходной переменной. -Директива поддерживает три специальных параметра: +Создаёт новую переменную, значение которой +зависит от значений одной или более исходных переменных, +указанных в первом параметре. +<note> +До версии 0.9.0 в качестве первого параметра можно было +указать только одну переменную. +</note> +</para> + +<para> +Параметры внутри блока <literal>map</literal> задают соответствие +между исходными и результирующими значениями. +</para> + +<para> +Исходные значения задаются строками или регулярными выражениями (0.9.6). +</para> + +<para> +Перед регулярным выражением ставится символ “<literal>~</literal>”, +если при сравнении следует учитывать регистр символов, либо символы +“<literal>~*</literal>” (1.0.4), если регистр символов учитывать не нужно. +Регулярное выражение может содержать именованные и позиционные выделения, +которые могут затем использоваться в других директивах совместно с +результирующей переменной. +</para> + +<para> +Если исходное значение совпадает с именем одного из специальных параметров +(см. ниже), перед ним следует поставить символ “<literal>\</literal>”. +</para> + +<para> +В качестве результирующего значения можно указать строку +или другую переменную (0.9.0). +</para> + +<para> +Директива также поддерживает три специальных параметра: <list type="tag"> <tag-name><literal>default</literal> <value>значение</value></tag-name> <tag-desc> -задаёт значение для второй переменной, если значение -первой переменной не найдено. +задаёт результирующее значение, если исходное значение не +совпадает ни с одним из перечисленных. +Если параметр <literal>default</literal> не указан, результирующим значением +по умолчанию будет пустая строка. </tag-desc> <tag-name><literal>hostnames</literal></tag-name> @@ -75,6 +118,7 @@ example.com 1; <example> .example.com 1; </example> +Этот параметр следует указывать перед списком значений. </tag-desc> <tag-name><literal>include</literal> <value>файл</value></tag-name> @@ -86,6 +130,38 @@ example.com 1; </list> </para> +<para> +Если исходному значению соответствует несколько из указанных вариантов, +например, одновременно подходят и маска, и регулярное выражение, +будет выбран первый подходящий вариант в следующем порядке приоритета: +<list type="enum"> + +<listitem> +строковое значение без маски +</listitem> + +<listitem> +самое длинное строковое значение с маской в начале, +например “<literal>*.example.com</literal>” +</listitem> + +<listitem> +самое длинное строковое значение с маской в конце, +например “<literal>mail.*</literal>” +</listitem> + +<listitem> +первое подходящее регулярное выражение +(в порядке следования в конфигурационном файле) +</listitem> + +<listitem> +значение по умолчанию (<literal>default</literal>) +</listitem> + +</list> +</para> + </directive>