Spec-Zone.ru › Apache HTTP Server

Введение в Apache mod_rewrite

Этот документ дополняет mod_rewrite справочную документацию. Он описывает основные концепции, необходимые для использования mod_rewrite. Другие документы рассматривают более детально, но этот документ поможет начинающим разобраться с основами.

Введение

Модуль Apache mod_rewrite — очень мощный и сложный модуль, предоставляющий возможность манипулирования URL-адресами. С его помощью можно выполнить практически любой тип переписывания URL-адресов, который может потребоваться. Однако он довольно сложен и может быть пугающим для начинающих. Также существует тенденция рассматривать правила переписывания как магические заклинания, используя их, не понимая, что они делают.

Этот документ пытается предоставить достаточную базу знаний, чтобы последующая информация была понятна, а не просто слепо копировалась.

Помните, что многие распространенные задачи по манипулированию URL-адресами не требуют всей мощи и сложности mod_rewrite. Для простых задач см. mod_alias и документацию по сопоставлению URL-адресов с файловой системой.

Наконец, перед продолжением убедитесь, что уровень логов mod_rewrite настроен на один из уровней отслеживания с помощью директивы LogLevel. Хотя это может предоставить чрезмерно много информации, это незаменимо при отладке проблем с конфигурацией mod_rewrite, так как оно покажет, как обрабатывается каждое правило.

Регулярные выражения

mod_rewrite использует лексику Perl Compatible Regular Expression. В этом документе мы не пытаемся предоставить подробную справку по регулярным выражениям. Для этого мы рекомендуем страницы руководства PCRE, страницы руководства Perl по регулярным выражениям и Mastering Regular Expressions, by Jeffrey Friedl.

В этом документе мы пытаемся предоставить достаточно лексики регулярных выражений для начала, не утомляя, в надежде, что регулярные выражения будут научными формулами, а не магическими заклинаниями.

Лексика регулярных выражений

Ниже приведены минимальные строительные блоки, которые понадобятся вам для написания регулярных выражений и RewriteRule. Они, безусловно, не представляют собой полную лексику регулярных выражений, но это хорошее начало, и они помогут вам читать базовые регулярные выражения, а также создавать свои собственные.

Символ Значение Пример
. Сопоставляет любой одиночный символ c.t будет соответствовать cat, cot, cut, и т. д.
+ Повторяет предыдущее соответствие один или более раз a+ соответствует a, aa, aaa, и т. д.
* Повторяет предыдущее соответствие ноль или более раз a* соответствует всем тем же вещам, что и a+, но также будет соответствовать пустой строке
? Делает соответствие необязательным colou?r будет соответствовать color и colour
\ Экранирует следующий символ \. будет соответствовать . (точка), а не любому одиночному символу, как объяснено выше
^ Якорь, соответствует началу строки ^a соответствует строке, начинающейся с a
$ Другой якорь, соответствует концу строки a$ соответствует строке, заканчивающейся на a
( )
Группирует несколько символов в единицу и захватывает соответствие для использования в обратной ссылке (ab)+ соответствует ababab — то есть + относится к группе. Более подробную информацию об обратных ссылках см. ниже ниже
[ ]
Класс символов — соответствует одному из символов c[uoa]t соответствует cut, cot или cat
[^ ]
Отрицательный класс символов — соответствует любому символу, не указанному c[^/]t соответствует cat или c=t, но не c/t

В mod_rewrite символ ! может использоваться перед регулярным выражением для его отрицания. Это означает, что строка будет считаться соответствующей только в том случае, если она не соответствует остальной части выражения.

Доступность обратных ссылок регулярных выражений

Важно помнить следующее: всякий раз, когда вы используете скобки в Pattern или в одном из CondPattern, создаются внутренние обратные ссылки, которые могут быть использованы со строками $N и %N (см. ниже). Они доступны для создания параметра Substitution в RewriteRule или параметра TestString в RewriteCond.

Захваты в шаблонах RewriteRule (противоинтуитивно) доступны всем предыдущим директивам RewriteCond, потому что выражение RewriteRule оценивается до отдельных условий.

На рисунке 1 показано, в какие места передаются обратные ссылки для расширения, а также показан поток сопоставления RewriteRule и RewriteCond. В следующих главах мы изучим, как использовать эти обратные ссылки, поэтому не волнуйтесь, если они покажутся вам немного необычными.

END_OF_DOCUMENT_MARKER

<img alt="Поток сопоставления RewriteRule и RewriteCond" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArwAAACRCAMAAAAWyZuwAAADImlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjEgNjQuMTQwOTQ5LCAyMDEwLzEyLzA3LTEwOjU3OjAxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgV2luZG93cyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OTY3MzQzOTgzQTYxMUUxOEFGREJEMkU4NDdCRDI3QiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OTY3MzQzQTgzQTYxMUUxOEFGREJEMkU4NDdCRDI3QiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5NjczNDM3ODNBNjExRTE4QUZEQkQyRTg0N0JEMjdCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5NjczNDM4ODNBNjExRTE4QUZEQkQyRTg0N0JEMjdCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+iCMlVwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMAUExURf///4kfHeLI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TjiEZSwdmrHws9f+IT4s35JDtxmghWu1jPKf5d4Jbx5+75VHSJC5pqW+/rJ2a9w2xc34kOAVqf47MUJAkgVkloeXEJHMK2YwLtESptzjhJfvhzHQ4egYOEDGh6zDA7HV7gM2RExO5YNPO1ClglnH+/36f9W2qG92m7E/a8e9f794WvX41H940q/wH74F4p494fQ799+g+y+u+f/96+1+2l21021+sJ1/r1+pP1c9Z/uZ4+7/P9f6w+f/5aW+O7/vH52k175r/46l7W/87+643+7/u92J5s+W5d/vJ4z0h/8n3nZtR+J8L18W/1z46w+o9c/vO7X2sZ9523j1aY2T/9z//+s7c/w2t+M/4D3v3m3v73H775+m52l/7P5tX/98l2z0/54eG/9D3rT0f+5/V8+0d3X7x+u+a5+g/+054L+Z6p/07+00v89952/71P10Z/98988w8329l9v/7/j+f/2a61W+76/W7e/025+b2k+aO50h/3198L/1+Z65z+1+59z2p/9D8s1d/347j8/X+v+V8/e9L6P4m/0+2u/+53Zf4630rP7e/f/XvF9f17H76y395f5e0c/9z51t/68956P/85//1/9/v+/8//i++2v2rR/v1/w63v9W541//Z/j73kD0H73e71nJ+k/37//8770m/u399+N8L/+23i/1/39/X716N+oY9p4W3D//e97+q/j/j13q++3j55a7/21f01+Q9z2/v1+f/7v4w8n/f6/2H//X7e/27/763r/vD7nXz//t7v/439e//nJ+c59z/n//t/v+/8/z/+/+65f/h/Xz7f91/P53j7/33zX6n++3v7v//u++9/3/v+/8/x/+/v7/X9+l388++7+3y/Xq2z16/l5/L//b//b//Z/j/o8+n/+aO//6i2o84D8J9f71jJ797z/oY/N9Y+f8b3gW/t6k7/5o7O/v9l6//z//7v28d/t9/v+/+//f8/v+/8/+/+/y/e/L7O44e7//l97+0+m/95H6/28z/vO7+q1f4259f+v1/37/gO/v0/x1/p6794+z98/O73f++v1+8/u2+z//+/3//v+/8/X+/8/wO/u/9D5v2/42/Z6q/v77+/20w0o19P7//O+/e+p/+u//e/+/7///+/+/8/wP+f88/v7r/322d1/4z9n397554/u+76n9W4y+99+/+/+/8/v7/3+/v+/+/wO/u1/5+58o3+/f/9t/v77+/+//v+/+/wJ8/18m1t5rL+/+/+/wP/Z38967n/41/n3342/n/69+0b//9w/Y7v51f8P//7//9w67/+7/v37/v1+5e8+8b/v611e++9n5d/v+/+//+//wH/r/9X//m/Z6v97z+oY/N9Y+f8b3gW/t6k7/5o7O/v9l6//z//7v28d/t9/v+/+//f8/v+/8/+/+/y/e/L7O44e7//l97+0+m/95H6/28z/vO7+q1f4259f+v1/37/gO/v0/x1/p6794+z98/O73f++v1+8/u2+z//+/3//v+/8/X+/8/wO/u/9D5v2/42/Z6q/v77+/20w0o19P7//O+/e+p/+u//e/+/7///+/+/8/wP+f88/v7r/322d1/4z9n397554/u+76n9W4y+99+/+/+/8/v7/3+/v+/+/wO/u1/5+58o3+/f/9t/v77+/+//v+/+/wJ8/18m1t5rL+/+/+/wP/Z38967n/41/n3342/n/69+0b//9w/Y7v51f8P//7//9w67/+7/v37/v1+5e8+8b/v611e++9n5d/v+/+//+//wH/r/9X//m/Z6v97z+oY/N9Y+f8b3gW/t6k7/5o7O/v9l6//z//7v28d/t9/v+/+//f8/v+/8/+/+/y/e/L7O44e7//l97+0+m/95H6/28z/vO7+q1f4259f+v1/37/gO/v0/x1/p6794+z98/O73f++v1+8/u2+z//+/3//v+/8/X+/8/wO/u/9D5v2/42/Z6q/v77+/20w0o19P7//O+/e+p/+u//e/+/7///+/+/8/wP+f88/v7r/322d1/4z9n397554/u+76n9W4y+99+/+/+/8/v7/3+/v+/+/wO/u1/5+58o3+/f/9t/v77+/+//v+/+/wJ8/18m1t5rL+/+/+/wP/Z38967n/41/n3342/n/69+0b//9w/Y7v51f8P//7//9w67/+7/v37/v1+5e8+8b/v611e++9n5d/v+/+//+//wH/r/9X//m/Z6v97z+oY/N9Y+f8b3gW/t6k7/5o7O/v9l6//z//7v28d/t9/v+/+//f8/v+/8/+/+/y/e/L7O44e7//l97+0+m/95H6/28z/vO7+q1f4259f+v1/37/gO/v0/x1/p6794+z98/O73f++v1+8/u2+z//+/3//v+/8/X+/8/wO/u/9D5v2/42/Z6q/v77+/20w0o19P7//O+/e+p/+u//e/+/7///+/+/8/wP+f88/v7r/322d1/4z9n397554/u+76n9W4y+99+/+/+/8/v7/3+/v+/+/wO/u1/5+58o3+/f/9t/v77+/+//v+/+/wJ8/18m1t5rL+/+/+/wP/Z38967n/41/n3342/n/69+0b//9w/Y7v51f8P//7//9w67/+7/v37/v1+5e8+8b/v611e++9n5d/v+/+//+//wH/r/9X//m/Z6v97z+oY/N9Y+f8b3gW/t6k7/5o7O/v9l6//z//7v28d/t9/v+/+//f8/v+/8/+/+/y/e


Рисунок 1: Поток обратной ссылки через правило.
В этом примере запрос на /test/1234 будет преобразован в /admin.foo?page=test&id=1234&host=admin.example.com.

Основы RewriteRule

A RewriteRule состоит из трёх аргументов, разделённых пробелами. Аргументы:

  1. Pattern: какие входящие URL должны быть затронуты правилом;
  2. Substitution: куда должны быть отправлены соответствующие запросы;
  3. [flags]: параметры, влияющие на переписанный запрос.

The Pattern является регулярным выражением. Изначально (для первого правила переписывания или до тех пор, пока не произойдёт подстановка) оно сопоставляется с URL-путь входящего запроса (часть после имени хоста, но до вопросительного знака, указывающего начало строки запроса) или, в контексте каждого каталога, с путем запроса, относительным к каталогу, для которого определено правило. После того, как произошла подстановка, последующие правила сопоставляются с подставленным значением.

<img alt="Синтаксис директивы RewriteRule" src="data:image/png;base64,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


Рисунок 2: Синтаксис директивы RewriteRule.

Сама Подстановка может быть одним из трёх:

Полный путь к ресурсу в файловой системе
RewriteRule "^/games" "/usr/local/games/web"

Это сопоставляет запрос произвольному расположению на вашей файловой системе, очень похоже на директиву Alias.

Путь к ресурсу на веб-сервере
RewriteRule "^/foo$" "/bar"

Если DocumentRoot установлено в значение /usr/local/apache2/htdocs, то данная директива сопоставит запросы к http://example.com/foo пути /usr/local/apache2/htdocs/bar.

Абсолютный URL
RewriteRule "^/product/view$" "http://site2.example.com/seeproduct.html" [R]

Это сообщает клиенту выполнить новый запрос для указанного URL.

Подстановка Substitution также может содержать обратные ссылки на части входящего пути URL, соответствующие Шаблону (Pattern). Рассмотрим пример:

RewriteRule "^/product/(.*)/view$" "/var/web/productdb/$1"

Переменная $1 будет заменена текстом, соответствующим выражению в скобках в Шаблоне. Например, запрос к http://example.com/product/r14df/view будет сопоставлен пути /var/web/productdb/r14df.

Если в скобках есть более одного выражения, они доступны в порядке следования в переменных $1, $2, $3 и так далее.

Флаги перенаправления

Поведение RewriteRule может быть изменено с помощью одного или нескольких флагов в конце правила. Например, поведение сопоставления правила может быть сделано регистронезависимым с помощью флага [NC]:

RewriteRule "^puppy.html" "smalldog.html" [NC]

Для более подробной информации о доступных флагах, их значениях и примерах, см. документ Флаги перенаправления.

Условия перенаправления

Одна или несколько директивы RewriteCond могут быть использованы для ограничения типов запросов, которые будут подвергнуты последующим RewriteRule. Первый аргумент — переменная, описывающая характеристику запроса; второй аргумент — регулярное выражение, которое должно совпасть с переменной; а необязательный третий аргумент — список флагов, которые изменяют способ оценки совпадения.

<img alt="Синтаксис директивы RewriteCond" src="data:image/png;base64,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


Рисунок 3: Синтаксис директивы RewriteCond

Например, чтобы перенаправить все запросы из определенного диапазона IP-адресов на другой сервер, можно использовать:

RewriteCond "%{REMOTE_ADDR}" "^10\.2\."
RewriteRule "(.*)"           "http://intranet.example.com$1"

Когда указано более одного RewriteCond, они все должны совпадать, чтобы RewriteRule была применена. Например, чтобы запретить запросы, содержащие слово "hack" в строке запроса, если в них также нет куки с словом "go", можно использовать:

RewriteCond "%{QUERY_STRING}" "hack"
RewriteCond "%{HTTP_COOKIE}"  !go
RewriteRule "."               "-"   [F]

Обратите внимание, что знак восклицания указывает на отрицательное соответствие, поэтому правило применяется только если куки не содержит "go".

Совпадения в регулярных выражениях, содержащихся в RewriteCond, могут быть использованы в качестве части Замены в RewriteRule с помощью переменных %1, %2, и т. д. Например, это перенаправит запрос в другой каталог в зависимости от имени хоста, используемого для доступа к сайту:

RewriteCond "%{HTTP_HOST}" "(.*)"
RewriteRule "^/(.*)"       "/sites/%1/$1"

Если запрос был на http://example.com/foo/bar, то %1 будет содержать example.com, а $1 будет содержать foo/bar.

Карты перенаправления

Директива RewriteMap предоставляет способ вызова внешней функции, так сказать, для выполнения перенаправления за вас. Это обсуждается более подробно в дополнительной документации по RewriteMap.

.htaccess файлы

Перенаправление обычно настраивается в основном конфигурационном параметре сервера (вне любого <Directory> раздела) или внутри <VirtualHost> контейнеров. Это самый простой способ выполнить перенаправление и рекомендуется. Однако, перенаправление возможно внутри <Directory> разделов или .htaccess файлов за счёт некоторого дополнительного усложнения. Этот метод называется перенаправлением по каталогам.

Основное отличие от перенаправления по серверам заключается в том, что префикс пути каталога, содержащего .htaccess файл, удаляется перед сопоставлением в RewriteRule. Кроме того, следует использовать RewriteBase, чтобы убедиться, что запрос правильно сопоставлен.

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/rewrite/intro.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API