changeset 391:1702722eca07

Cleaned up terminology and language used.
author Ruslan Ermilov <ru@nginx.com>
date Fri, 03 Feb 2012 12:18:35 +0000
parents bef9e1a2e3c8
children 5fd99d37a3e6
files xml/ru/docs/http/ngx_http_rewrite_module.xml
diffstat 1 files changed, 76 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/xml/ru/docs/http/ngx_http_rewrite_module.xml	Fri Feb 03 12:16:28 2012 +0000
+++ b/xml/ru/docs/http/ngx_http_rewrite_module.xml	Fri Feb 03 12:18:35 2012 +0000
@@ -11,15 +11,32 @@
 <para>
 Модуль <literal>ngx_http_rewrite_module</literal> позволяет
 изменять URI с помощью регулярных выражений, делать перенаправления
-и выбирать конфигурацию в зависимости от переменных.
-Если директивы этого модуля описаны на уровне сервера, то они
-выполняются до того, как определяется location для запроса.
-Если в выбранном location тоже есть директивы модуля
-<literal>ngx_http_rewrite_module</literal>, то они также выполняются.
-Если URI изменился в результате исполнения директив внутри location,
-то снова определяется location для уже нового URI.
-Этот цикл может повторяться до 10 раз, после чего nginx возвращает
-ошибку <http-status code="500" text="Internal Server Error"/>.
+и выбирать конфигурацию по условию.
+</para>
+
+<para>
+Директивы модуля <literal>ngx_http_rewrite_module</literal>
+обрабатываются в следующем порядке:
+<list type="bullet">
+
+<listitem>
+выполняются директивы этого модуля, описанные на уровне
+<link doc="ngx_http_core_module.xml" id="server">сервера</link>;
+</listitem>
+
+<listitem>
+ищется location для запроса;
+</listitem>
+
+<listitem>
+выполняются директивы этого модуля, описанные в выбранном
+<link doc="ngx_http_core_module.xml" id="location"/>,
+и если они изменяли URI, то ищется новый location для уже нового URI.
+Этот цикл может повторяться до 10 раз, после чего возвращается
+ошибка <http-status code="500" text="Internal Server Error"/>.
+</listitem>
+
+</list>
 </para>
 
 </section>
@@ -59,12 +76,12 @@
 <context>location</context>
 
 <para>
-Проверяет истинность условия.
-Если оно истинно,
-то выполняется указанный в фигурных скобках код и запрос обрабатывается
-в соответствии с заданной там же конфигурацией.
-Конфигурация внутри директивы <literal>if</literal> наследуется с
-предыдущего уровня.
+Проверяется указанное <value>условие</value>.
+Если оно истинно, то выполняются указанные в фигурных скобках директивы
+этого модуля и запросу назначается конфигурация, указанная внутри
+директивы <literal>if</literal>.
+Конфигурации внутри директив <literal>if</literal> наследуются с
+предыдущего уровня конфигурации.
 </para>
 
 <para>
@@ -72,7 +89,7 @@
 <list type="bullet">
 
 <listitem>
-имя переменной; ложными значениями переменной являются пустая строка “”
+имя переменной; ложными значениями переменной являются пустая строка
 или любая строка, начинающаяся на “<literal>0</literal>”;
 </listitem>
 
@@ -82,14 +99,14 @@
 </listitem>
 
 <listitem>
-проверка переменной с помощью регулярного выражения с учётом
+соответствие переменной регулярному выражению с учётом
 регистра символов — “<literal>~</literal>” и без него — “<literal>~*</literal>”.
 В регулярных выражениях можно использовать выделения, которые затем
-доступны в виде переменных <var>$1</var> — <var>$9</var>.
+доступны в виде переменных <var>$1</var>..<var>$9</var>.
 Также можно использовать отрицательные операторы “<literal>!~</literal>”
 и “<literal>!~*</literal>”.
 Если в регулярном выражении встречаются символы “<literal>}</literal>”
-или “<literal>;</literal>”, то всё выражение нужно заключить в одинарные
+или “<literal>;</literal>”, то всё выражение следует заключить в одинарные
 или двойные кавычки.
 </listitem>
 
@@ -131,7 +148,6 @@
     return 405;
 }
 
-
 if ($slow) {
     limit_rate 10k;
 }
@@ -140,8 +156,10 @@
     return 403;
 }
 </example>
+<note>
 Значение встроенной переменной <var>$invalid_referer</var> задаётся директивой
 <link doc="ngx_http_referer_module.xml" id="valid_referers"/>.
+</note>
 </para>
 
 </directive>
@@ -155,8 +173,8 @@
 <context>if</context>
 
 <para>
-Завершает исполнение кода и возвращает клиенту указанный код.
-Можно использовать следующие значения: 204, 400,
+Завершает обработку и возвращает клиенту указанный <value>код</value>.
+Можно возвращать следующие коды: 204, 400,
 402 — 406, 408, 410, 411, 413, 416 и 500 — 504.
 Кроме того, нестандартный код 444 закрывает соединение без передачи
 заголовка ответа.
@@ -176,22 +194,25 @@
 <context>if</context>
 
 <para>
-Изменяет URI в соответствии с регулярным выражением и строкой замены.
-Директивы выполняются в порядке их следования в конфигурационном файле.
-С помощью флагов можно досрочно прекратить исполнение директив.
-Если строка замены начинается с “<literal>http://</literal>”, то клиенту
-будет возвращено перенаправление и обработка директив также завершается.
+Если указанное регулярное выражение соответствует URI, URI изменяется
+в соответствии со строкой замены.
+Директивы <literal>rewrite</literal> выполняются последовательно,
+в порядке их следования в конфигурационном файле.
+С помощью флагов можно прекратить дальнейшую обработку директив.
+Если строка замены начинается с “<literal>http://</literal>” или
+“<literal>https://</literal>”, то обработка завершается и клиенту
+возвращается перенаправление.
 </para>
 
 <para>
-Флаги могут быть следующими:
+Необязательный параметр <value>флаг</value> может быть одним из:
 <list type="tag">
 
 <tag-name><literal>last</literal></tag-name>
 <tag-desc>
 завершает обработку текущего набора директив модуля
 <literal>ngx_http_rewrite_module</literal>,
-после чего ищется соответствие URI и location;
+после чего ищется новый location, соответствующий изменённому URI;
 </tag-desc>
 
 <tag-name><literal>break</literal></tag-name>
@@ -204,7 +225,7 @@
 <tag-desc>
 возвращает временное перенаправление с кодом 302;
 используется, если заменяющая строка не начинается с
-“<literal>http://</literal>”;
+“<literal>http://</literal>” или “<literal>https://</literal>”;
 </tag-desc>
 
 <tag-name><literal>permanent</literal></tag-name>
@@ -218,9 +239,13 @@
 <para>
 Пример:
 <example>
-rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;
-rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra  last;
-return  403;
+server {
+    ...
+    rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;
+    rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra  last;
+    return  403;
+    ...
+}
 </example>
 </para>
 
@@ -238,9 +263,10 @@
 </para>
 
 <para>
-Если в строке замены указаны аргументы, то предыдущие аргументы запроса
-добавляются после них.
-Можно отказаться от этого добавления, указав в конце строки замены знак вопроса:
+Если в строке замены указаны новые аргументы запроса, то предыдущие
+аргументы запроса добавляются после них.
+Если такое поведение нежелательно, можно отказаться от этого добавления,
+указав в конце строки замены знак вопроса, например:
 <example>
 rewrite ^/users/(.*)$ /show?user=$1? last;
 </example>
@@ -248,7 +274,7 @@
 
 <para>
 Если в регулярном выражении встречаются символы “<literal>}</literal>”
-или “<literal>;</literal>”, то всё выражение нужно заключить в одинарные
+или “<literal>;</literal>”, то всё выражение следует заключить в одинарные
 или двойные кавычки.
 </para>
 
@@ -263,7 +289,7 @@
 <context>if</context>
 
 <para>
-Устанавливает значение для указанной переменной.
+Устанавливает значение указанной переменной.
 В качестве значения можно использовать текст, переменные и их комбинации.
 </para>
 
@@ -279,8 +305,8 @@
 <context>if</context>
 
 <para>
-Определяет, нужно ли писать в лог предупреждение
-о неинициализированной переменной.
+Определяет, нужно ли писать в лог предупреждения о неинициализированных
+переменных.
 </para>
 
 </directive>
@@ -292,8 +318,8 @@
 
 <para>
 Директивы модуля <literal>ngx_http_rewrite_module</literal>
-компилируются на стадии конфигурации во внутренние коды,
-исполняемые во время запроса интерпретатором.
+компилируются на стадии конфигурации во внутренние инструкции,
+интерпретируемые во время обработки запроса.
 Интерпретатор представляет из себя простую стековую виртуальную машину.
 </para>
 
@@ -312,7 +338,7 @@
     rewrite ^/(download/.*)/media/(.*)\..*$ /$1/mp3/$2.mp3 break;
 }
 </example>
-будет скомпилированы в такие коды:
+будут транслированы в такие инструкции:
 <example>
 переменная $forbidden
 проверка на ноль
@@ -332,15 +358,13 @@
 </para>
 
 <para>
-Обратите внимание, что кода для директивы
+Обратите внимание, что инструкций для директивы
 <link doc="ngx_http_core_module.xml" id="limit_rate"/>
 нет, поскольку она не имеет отношения к модулю
 <literal>ngx_http_rewrite_module</literal>.
-Для блока <link id="if"/> создаётся такая же конфигурация, как и для блока
-<link doc="ngx_http_core_module.xml" id="location"/>.
-Если условие истинно, то запрос получает конфигурацию, соответствующую
-блоку <literal>if</literal>,
-и в этой конфигурации <literal>limit_rate</literal> равен 10k.
+Для блока <link id="if"/> создаётся отдельная конфигурация,
+Если условие истинно, запрос получает эту конфигурацию,
+и в ней <literal>limit_rate</literal> равен 10k.
 </para>
 
 <para>
@@ -348,12 +372,12 @@
 <example>
 rewrite ^/(download/.*)/media/(.*)\..*$ /$1/mp3/$2.mp3 break;
 </example>
-можно сделать на один код меньше, если в регулярном выражении включить
-первый слэш в скобки:
+можно сделать на одну инструкцию меньше, если в регулярном выражении перенести
+первый слэш внутрь скобок:
 <example>
 rewrite ^(<emphasis>/</emphasis>download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 break;
 </example>
-тогда её коды будут выглядеть так:
+Тогда соответствующие инструкции будут выглядеть так:
 <example>
 проверка регулярного выражения
 копирование $1