Флаги mod_rewrite
дата добавления: 14 сентября 2008 / 11:52, просмотров: 3635, комментариев:
0Коротко о главном
mod_rewrite – специальный модуль, входящий в состав Apache, позволяющий подменять адреса страниц. Например, «некрасивый» адрес страницы http://aleksey.nemiro.ru/showGroup.php?id=blog&subid=programming, можно сделать более «красивым» http://aleksey.nemiro.ru/blog/programming.
Настройки перенаправления делаются в файле
.htaccess.
Я не буду здесь подробно описывать, как это работает. В двух словах, включается
mod_rewrite командой
RewriteEngine On, далее, создаются правила перенаправления, в шаблонах перенаправления используются обычные регулярные выражения:
RewriteRule красивый url настоящий url [флаги] Например: RewriteEngine On
RewriteBase /
RewriteRule ^([\w\d\-]+)/([\w\d-]+).html$ group.php?group_id=$1&id=$2 [L,NC,QSA]
RewriteRule ^([\w\d\-]+).html$ show.php?id=$1 [L,NC,QSA] Здесь, первое правило указывает, что все обращения к адресам типа
http://mysite.ru/preved/medved.html обрабатываются страницей
http://mysite.ru/group.php, а адреса типа
http://mysite.ru/preved.html обрабатываются страницей
http://mysite.ru/show.php.
Шаблон регулярного выражения:
([\w\d\-]+) – указывает на то, что в адресе могут быть использованы буквы, цифры и символ тире (-).
Флаги
| [R] | Redirect - останавливает процесс преобразования и возвращает результат браузеру клиента как редирект на данную страницу (код 302 - MOVED TEMPORARY), также можно указать код редиректа самостоятельно, например R=301 (код 301 - MOVED PERMANENTLY). |
| [F] | Forbidden - возвращает ошибку 403. |
| [G] | Gone - возвращает ошибку 410. |
| [P] | Proxy - дает команду Apache выполнть подзапрос к указанной странице с использованием программного модуля mod_proxy, при этом пользователь ничего не узнает об этом подзапросе. Если модуль mod_proxy отсутствует, то произойдет ошибка. |
| [L] | Last - останавливает процесс преобразования, и текущая ссылка считается окончательной. |
| [N] | Next - запускает процесс преобразования с первого по порядку правила. |
| [C] | Chain - объединяет несколько правил в цепочку. Если первое правило цепочки не срабатывает, то вся цепочка игнорируется. |
| [NS] | NoSubreq - разрешает срабатывание правила только для настоящих запросов, игнорируя подзапросы. |
| [NC] | NoCase - отключает проверку регистра символов. |
| [QSA] | Qsappend - добавляет исходные параметры запроса (query string) к замене. Если замена не включает в себя новые параметры запроса, то исходные параметры запроса добавляются автоматически. Если же включает, то без флага QSA исходные параметры запроса будут утеряны. |
| [PT] | PassThrough - останавливает процесс преобразования и передает полученную новую ссылку дальше по цепочке. |
| [S] | Skip - пропускает следующее правило, если данное правило сработало. Можно указать количество правил, например: S=2 |
| [E] | Env - устанавливает переменную окружения, например: E=переменная:значение. |
Флаги указываются в конце каждого правила в квадратных скобках через запятую. Например:
RewriteRule ^([\w\d\-]+).html$ show.php?id=$1 [
L,NC,QSA]
Комментарии (всего: 0)
В этой записи пока еще нет комментариев...
Добавить комментарий