From 1b37117a096fb4a7892715ce6775eb68b31b8922 Mon Sep 17 00:00:00 2001 From: Alexey Berezhok Date: Sat, 27 Jun 2026 00:32:35 +0300 Subject: [PATCH] Update documentation --- README.md | 80 ++++++++++++++++++++++++++++++++++++++++++++-------- README.ru.md | 60 +++++++++++++++++++++++++++++++-------- 2 files changed, 118 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 1302ace..360cecf 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,54 @@ The following directives are available in this module: | Context | Available Levels | |----------------|---------------------------------------------| | `main`, `server`, `location` | ✓ All three levels supported | +| `GlobalLocation` | ✓ Global location level (new) | + +**Syntax:** +```nginx +RewriteEngine on|off +``` + +**Possible Values:** +- `on` - Enable rewrite engine +- `off` - Disable rewrite engine (default) + +**Example in nginx.conf:** +```nginx +http { + server { + RewriteEngine on; + + location /blog/ { + # Rules apply here + } + + location /static/ { + RewriteEngine off; # Disable for this location + } + } +} +``` + +**GlobalLocation Configuration (new):** +The `GlobalLocationRewriteEngine` directive allows setting the rewrite engine state for server-level locations: + +```nginx +http { + server { + GlobalLocationRewriteEngine on; + + # All locations in this server inherit the global setting + + location /blog/ { + # RewriteEngine is enabled by default + } + + location /static/ { + RewriteEngine off; # Override for this location if needed + } + } +} +``` **Syntax:** ```nginx @@ -395,17 +443,18 @@ RewriteFallBack /handler.php?lang=ru ## Configuration Levels Summary -| Directive | http/main | server | location | .htaccess | -|-----------------|-----------|--------|----------|-----------| -| RewriteEngine | ✓ | ✓ | ✓ | ✓ | -| RewriteRule | - | ✓ | ✓ | ✓ | -| RewriteCond | - | ✓ | ✓ | ✓ | -| RewriteBase | - | - | ✓ | ✓ | -| RewriteOptions | ✓ | ✓ | ✓ | - | -| RewriteMap | - | ✓ | - | - | -| HtaccessEnable | ✓ | ✓ | - | - | -| HtaccessName | ✓ | ✓ | - | - | -| RewriteFallBack | ✗ | ✗ | - | ✓ | +| Directive | http/main | server | location | .htaccess | +|--------------------------|-----------|--------|----------|-----------| +| RewriteEngine | ✓ | ✓ | ✓ | ✓ | +| GlobalLocationRewriteEngine | - | ✓ | - | - | +| RewriteRule | - | ✓ | ✓ | ✓ | +| RewriteCond | - | ✓ | ✓ | ✓ | +| RewriteBase | - | - | ✓ | ✓ | +| RewriteOptions | ✓ | ✓ | ✓ | - | +| RewriteMap | - | ✓ | - | - | +| HtaccessEnable | ✓ | ✓ | - | - | +| HtaccessName | ✓ | ✓ | - | - | +| RewriteFallBack | ✗ | ✗ | - | ✓ | --- @@ -458,6 +507,15 @@ The `RewriteFallBack` directive allows customizing the fallback path used when a --- +### GlobalLocationRewriteEngine Directive (new) +The `GlobalLocationRewriteEngine` directive allows setting the rewrite engine state for server-level locations: + +1. **Scope:** Configured only at the server block level within http context +2. **Inheritance:** All new locations inherit the global configuration by default +3. **Override Support:** Individual locations can still override the global setting with their own `RewriteEngine` directive + +--- + ## Notes - Rewrite rules are processed in order as defined in configuration or `.htaccess` files diff --git a/README.ru.md b/README.ru.md index dc5f409..6ee1696 100644 --- a/README.ru.md +++ b/README.ru.md @@ -42,6 +42,27 @@ http { } ``` +**Конфигурация GlobalLocation (новое):** +Директива `GlobalLocationRewriteEngine` позволяет установить состояние движка переписывания для всех location этого сервера: + +```nginx +http { + server { + GlobalLocationRewriteEngine on; + + # Все location в этом сервере наследуют глобальную настройку + + location /blog/ { + # RewriteEngine включён по умолчанию + } + + location /static/ { + RewriteEngine off; # Можно переопределить для этой локации + } + } +} +``` + --- @@ -400,19 +421,29 @@ RewriteFallBack /handler.php?lang=ru --- +### Директива GlobalLocationRewriteEngine (новое) +Директива `GlobalLocationRewriteEngine` позволяет установить состояние движка переписывания для всех location этого сервера: + +1. **Область применения:** Настраивается только на уровне server внутри http контекста +2. **Наследование:** Все новые location наследуют глобальную конфигурацию по умолчанию +3. **Переопределение:** Отдельные location могут переопределить глобальную настройку своей собственной директивой `RewriteEngine` + +--- + ## Сводка уровней конфигурации -| Директива | http/main | server | location | .htaccess | -|------------------|-----------|--------|----------|-----------| -| RewriteEngine | ✓ | ✓ | ✓ | ✓ | -| RewriteRule | - | ✓ | ✓ | ✓ | -| RewriteCond | - | ✓ | ✓ | ✓ | -| RewriteBase | - | - | ✓ | ✓ | -| RewriteOptions | ✓ | ✓ | ✓ | - | -| RewriteMap | - | ✓ | - | - | -| HtaccessEnable | ✓ | ✓ | - | - | -| HtaccessName | ✓ | ✓ | - | - | -| RewriteFallBack | ✗ | ✗ | - | ✓ | +| Директива | http/main | server | location | .htaccess | +|-------------------------------|-----------|--------|----------|-----------| +| RewriteEngine | ✓ | ✓ | ✓ | ✓ | +| GlobalLocationRewriteEngine | - | ✓ | - | - | +| RewriteRule | - | ✓ | ✓ | ✓ | +| RewriteCond | - | ✓ | ✓ | ✓ | +| RewriteBase | - | - | ✓ | ✓ | +| RewriteOptions | ✓ | ✓ | ✓ | - | +| RewriteMap | - | ✓ | - | - | +| HtaccessEnable | ✓ | ✓ | - | - | +| HtaccessName | ✓ | ✓ | - | - | +| RewriteFallBack | ✗ | ✗ | - | ✓ | --- @@ -465,6 +496,13 @@ RewriteRule ^(.*)$ index.php?route=$1 [QSA,L] 1. **Кеширование:** Путь отката из `.htaccess` кэшируется на каждый запрос, чтобы избежать повторного разборов. 2. **Логика отката:** Когда `try_files` завершается неудачей, модуль перенаправляет на заданный откат вместо `/index.php`. 3. **Сохранение строки запроса:** Исходная строка запроса сохраняется и добавляется к пути отката. + +### Директива GlobalLocationRewriteEngine (новое) +Директива `GlobalLocationRewriteEngine` позволяет установить состояние движка переписывания для всех location этого сервера: + +1. **Область применения:** Настраивается только на уровне server внутри http контекста +2. **Наследование:** Все новые location наследуют глобальную конфигурацию по умолчанию +3. **Переопределение:** Отдельные location могут переопределить глобальную настройку своей собственной директивой `RewriteEngine` ``` ---