changeset 503:aed015c3dedd

Documented URI normalization rules, including %-decoding. Aligned the description of the $uri variable accordingly.
author Ruslan Ermilov <ru@nginx.com>
date Tue, 24 Apr 2012 06:35:12 +0000
parents 6520338cdf0a
children 695f83494c19
files xml/en/docs/http/ngx_http_core_module.xml xml/ru/docs/http/ngx_http_core_module.xml
diffstat 2 files changed, 32 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/xml/en/docs/http/ngx_http_core_module.xml
+++ b/xml/en/docs/http/ngx_http_core_module.xml
@@ -1288,6 +1288,18 @@ listen 127.0.0.1 default accept_filter=d
 
 <para>
 Sets a configuration based on a request URI.
+</para>
+
+<para>
+The matching is performed against a normalized URI,
+after decoding a text encoded in the “<literal>%XX</literal>” form,
+resolving references to relative path components “<literal>.</literal>”
+and “<literal>..</literal>”, and possible
+<link id="merge_slashes">compression</link> of two or more
+adjacent slashes into a single slash.
+</para>
+
+<para>
 A location can either be defined by a prefix string, or by a regular expression.
 Regular expressions are specified by prepending them with the
 “<literal>~*</literal>” prefix (for case-insensitive matching), or with the
@@ -2808,10 +2820,10 @@ that support the <c-def>TCP_INFO</c-def>
 
 <tag-name><var>$uri</var></tag-name>
 <tag-desc>
-current URI in request
+current URI in request, <link id="location">normalized</link>
 <para>
-It may differ from an original, e.g. when doing internal redirects,
-or when using index files.
+The value of <var>$uri</var> may change during request processing,
+e.g. when doing internal redirects, or when using index files.
 </para>
 </tag-desc>
 
--- a/xml/ru/docs/http/ngx_http_core_module.xml
+++ b/xml/ru/docs/http/ngx_http_core_module.xml
@@ -1271,6 +1271,18 @@ listen 127.0.0.1 default accept_filter=d
 
 <para>
 Устанавливает конфигурацию в зависимости от URI запроса.
+</para>
+
+<para>
+Для сопоставления используется URI запроса в нормализованном виде,
+после декодирования текста, заданного в виде “<literal>%XX</literal>”,
+преобразования относительных элементов пути “<literal>.</literal>” и
+“<literal>..</literal>” в реальные, и возможной
+<link id="merge_slashes">замены</link> двух и более подряд идущих
+слэшей на один.
+</para>
+
+<para>
 location можно задать префиксной строкой или регулярным выражением.
 Регулярные выражения задаются либо с префиксом “<literal>~*</literal>”
 (для поиска совпадения без учёта регистра символов),
@@ -1427,7 +1439,7 @@ location ~* \.(gif|jpg|jpeg)$ {
 
 <para>
 Разрешает или запрещает преобразование URI путём замены двух и более подряд
-идущих слэшей (“<literal>/</literal>”) в один.
+идущих слэшей (“<literal>/</literal>”) на один.
 </para>
 
 <para>
@@ -2790,10 +2802,11 @@ fastcgi_pass_request_body off</link>
 
 <tag-name><var>$uri</var></tag-name>
 <tag-desc>
-текущий URI запроса
+текущий URI запроса в <link id="location">нормализованном</link> виде
 <para>
-Он может отличаться от первоначального, например, при внутренних
-перенаправлениях или при использовании индексных файлов.
+Значение <var>$uri</var> может изменяться в процессе обработки запроса,
+например, при внутренних перенаправлениях
+или при использовании индексных файлов.
 </para>
 </tag-desc>