|
|||||||||||||||||||
|
|
||||||||||||||||||
В предыдущей части статьи мы рассмотрели основные принципы работы mod_rewrite. В этой статье будут рассмотрены общие случаи использования mod_rewrite и его возможностей. Как я уже говорил раньше, mod_rewrite используется для преобразования запросов к серверу вида http://site.net/?dir=general&s=53 на http://site.net/general/53/. Это преобразование выполняется с помощью простого правила записанного в .htaccess: RewriteRule ^([A-Za-z]+)/([0-9]+)$ index.php?dir=$1&s=$2 Надеюсь, это все усвоили. Переходим к более сложным преобразованиям. Но для начала перечислю основные принципы при составлении правил для mod_rewrite: Mod_rewrite предоставляет еще очень много чего интересного, например он может определять тип браузера и в зависимости от него выдавать нужную страницу: RewriteCond %{HTTP_USER_AGENT} ^Mozilla.* RewriteCond %{HTTP_USER_AGENT} ^Lynx.* Для написания своего правила нужно немного: Делается это очень просто, например, у вас есть сайт, на котором вы что-либо продаете. И вам и вашим клиентам было бы гораздо удобнее запоминать названия каталогов сайта, нежели переменные и их параметры. Поэтому предположим, что ваш будущий сайт должен иметь такую структуру: +-----example.com Но создавать все эти директории не обязательно, проще воспользоваться mod_rewrite. Для этого в корне сайта создаем файл .htaccess и в него пишем следующее: # Включаем возможности mod_rewrite # Создаем правила для разделов. # Для разделов (категорий) # Для разделов и подразделов # Для разделов, подразделов и идентификатора Теперь при запросах вида http://example.com/articles/category1/article12 будет вызываться http://example.com/index.php?module=articles&category=category1&id=article12
Но можно поступить и по-другому: # Включаем возможности mod_rewrite В этом случае все входящие параметры должен будет обрабатывать index.php. Делается это так: <?php $param=$_SERVER['REQUEST_URI']; И в результате выполнения скрипта мы получим все параметры, полученные при разбиении запроса. Например, запрос: http://example.com/articles/category1/article12.htm после обработки скриптом в массиве $params будет содержаться следующее: Array А дальше уже все просто, в зависимости от параметра [0] выбираем тот модуль, который нам нужен и грузим его. Продолжение следует. В следуещей части будут рассмотренны более конкретные случаи. |
|||||||||||||||||||
|