Update documentation

This commit is contained in:
Alexey Berezhok
2026-06-27 00:32:35 +03:00
parent da7c38a0c6
commit 1b37117a09
2 changed files with 118 additions and 22 deletions

View File

@@ -15,6 +15,54 @@ The following directives are available in this module:
| Context | Available Levels | | Context | Available Levels |
|----------------|---------------------------------------------| |----------------|---------------------------------------------|
| `main`, `server`, `location` | ✓ All three levels supported | | `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:** **Syntax:**
```nginx ```nginx
@@ -395,17 +443,18 @@ RewriteFallBack /handler.php?lang=ru
## Configuration Levels Summary ## Configuration Levels Summary
| Directive | http/main | server | location | .htaccess | | Directive | http/main | server | location | .htaccess |
|-----------------|-----------|--------|----------|-----------| |--------------------------|-----------|--------|----------|-----------|
| RewriteEngine | ✓ | ✓ | ✓ | ✓ | | RewriteEngine | ✓ | ✓ | ✓ | ✓ |
| RewriteRule | - | ✓ | | | | GlobalLocationRewriteEngine | - | ✓ | - | - |
| RewriteCond | - | ✓ | ✓ | ✓ | | RewriteRule | - | ✓ | ✓ | ✓ |
| RewriteBase | - | - | ✓ | ✓ | | RewriteCond | - | | ✓ | ✓ |
| RewriteOptions | | | ✓ | - | | RewriteBase | - | - | ✓ | |
| RewriteMap | - | ✓ | - | - | | RewriteOptions | | ✓ | | - |
| HtaccessEnable | | ✓ | - | - | | RewriteMap | - | ✓ | - | - |
| HtaccessName | ✓ | ✓ | - | - | | HtaccessEnable | ✓ | ✓ | - | - |
| RewriteFallBack | | | - | | | 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 ## Notes
- Rewrite rules are processed in order as defined in configuration or `.htaccess` files - Rewrite rules are processed in order as defined in configuration or `.htaccess` files

View File

@@ -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 | | Директива | http/main | server | location | .htaccess |
|------------------|-----------|--------|----------|-----------| |-------------------------------|-----------|--------|----------|-----------|
| RewriteEngine | ✓ | ✓ | ✓ | ✓ | | RewriteEngine | ✓ | ✓ | ✓ | ✓ |
| RewriteRule | - | ✓ | | | | GlobalLocationRewriteEngine | - | ✓ | - | - |
| RewriteCond | - | ✓ | ✓ | ✓ | | RewriteRule | - | ✓ | ✓ | ✓ |
| RewriteBase | - | - | ✓ | ✓ | | RewriteCond | - | | ✓ | ✓ |
| RewriteOptions | | | ✓ | - | | RewriteBase | - | - | ✓ | |
| RewriteMap | - | ✓ | - | - | | RewriteOptions | | ✓ | | - |
| HtaccessEnable | | ✓ | - | - | | RewriteMap | - | ✓ | - | - |
| HtaccessName | ✓ | ✓ | - | - | | HtaccessEnable | ✓ | ✓ | - | - |
| RewriteFallBack | | | - | | | HtaccessName | | | - | - |
| RewriteFallBack | ✗ | ✗ | - | ✓ |
--- ---
@@ -465,6 +496,13 @@ RewriteRule ^(.*)$ index.php?route=$1 [QSA,L]
1. **Кеширование:** Путь отката из `.htaccess` кэшируется на каждый запрос, чтобы избежать повторного разборов. 1. **Кеширование:** Путь отката из `.htaccess` кэшируется на каждый запрос, чтобы избежать повторного разборов.
2. **Логика отката:** Когда `try_files` завершается неудачей, модуль перенаправляет на заданный откат вместо `/index.php`. 2. **Логика отката:** Когда `try_files` завершается неудачей, модуль перенаправляет на заданный откат вместо `/index.php`.
3. **Сохранение строки запроса:** Исходная строка запроса сохраняется и добавляется к пути отката. 3. **Сохранение строки запроса:** Исходная строка запроса сохраняется и добавляется к пути отката.
### Директива GlobalLocationRewriteEngine (новое)
Директива `GlobalLocationRewriteEngine` позволяет установить состояние движка переписывания для всех location этого сервера:
1. **Область применения:** Настраивается только на уровне server внутри http контекста
2. **Наследование:** Все новые location наследуют глобальную конфигурацию по умолчанию
3. **Переопределение:** Отдельные location могут переопределить глобальную настройку своей собственной директивой `RewriteEngine`
``` ```
--- ---