mod_rewrite -- это модуль сервера Apache, для преобразования URL на лету. Модуль включен в Apache по умолчанию, поэтому никаких дополнительных действий по его подключению не нужно. Активировать и настроить преобразования можно как в файле конфигурации
httpd.conf, так и в файле
.htaccess*) конкретной директории.
Простейший пример настройки модуля mod_rewrite:
RewriteEngine on
RewriteRule ^(.*)\.aaa$ $1.php [L]
RewriteRule ^(.*)\.ddd$ $1.php
В приведенном примере директива в строке 1задействуется модуль mod_rewrite. С нее начинается любая настройка модуля.
В строке 2 задается правило преобразования URL-адреса в виде регулярного выражения.
[L] означает что правило не зависит от правила следующего за ним. Этих правил может быть произвольное множество.
Допустимы следующие параметры в квадратных скобках:
- C – Chain;
- E – Environmental Variable;
- F – Forbidden;
- G – 410 Gone;
- L – Last;
- N – Next (Round);
- NC – No Case;
- NE – No Escape;
- NS – No SubRequest;
- P – Proxy;
- PT – Pass Through;
- QSA – Query String Append;
- R – Redirect;
- S – Skip;
- T – Type.
Директива RewriteMap используется для того чтобы
RewriteMap MapName MapType:MapSource
Параметр
MapType может принимать следующие значения:
- int --
- toupper --
- tolower --
- escape --
- unescape --
- txt --
- rnd --
- dbm --
- prg --
После этого определенные RewriteMap можно использовать в директивах RewriteRule и RewriteCond.
${MapName:LookupKey}
${MapName:LookupKey|DefaultValue}
Например:
RewriteRule .* {tolowermap:$0}
*) -- если вы хотите использовать для настроек файл
.htaccess, то не забудьте поставить в
httpd.conf д
ля AllowOverride значение All (по умолчанию None) чтобы настройки из
.htaccess приминились сервером.
**) --
Оригинальная документация лежит здесь
http://httpd.apache.org/docs/current/mod/mod_rewrite.html