среда, 5 октября 2011 г.

Настройка mod_rewrite

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

Комментариев нет:

Отправить комментарий