Просто делаем красивые URLы (Apache/mod_rewrite)

 

Для трансляции адресов из простого читаемого вида типа страниц (http://site.com/contacts/) к адресу типа "индексный файл с параметрами" (http://site.com/page_name=contacts&range=20), настроить модуль можно применяя следующие регулярные выражения

Пример:

Пример файла .htaccess для корневого каталога сайта

Options -Indexes +FollowSymLinks

<IfModule mod_rewrite.c>
#Используем модуль
RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/([A-Za-z]+)/\?(.*)$ /index.php?page_id=$1&lang_id=$2&$3 [QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/\?(.*)$ /index.php?page_id=$1&$2 [QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/([A-Za-z]+)/?$ /index.php?page_id=$1&lang_id=$2 [QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/?$ /index.php?page_id=$1 [QSA]

</IfModule>

 

Флаги справа в квадратных скобках для RewriteRule:

QSA (query string append) - Вместо замены всей строки происходит подстановка в конец. Это полезно для добавления дополнительных параметров.

L (last rule)- Последнее правило. Данный флаг позволяет прервать исполнение последующих правил и тем самым предохранить текущее от затирания.

В случае редиректа в правиле с данным ключем правила в нового запроса будут интерпретироваться с начала.