Этот модуль позволяет переписывать URL страницы на лету - по специальным правилам, запрос на URL с клиентского браузера будет разбит на части и переработан в другой URL перед исполнением запроса. Обычно это используется для конвертирования динамического URL с параметрами в статический с именем файла.
Примеры использования mod_rewrite, практические решения
Если уже есть файл .htaccess, например со следующим содержимым
Options Includes +ExecCGI
AddType text/x-server-parsed-html .html
то просто добавьте снизу код (запуск модуля c указанием корневого URL)
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
# Блокировка доступа к .htaccess
RewriteRule ^.htaccess$ - [F]
# Автоматическое перенаправление на внешнюю страницу (при входе в директорию /example пользователь будет перенаправлен на http://www.example.org)
Redirect permanent /example.html http://www.example.org
# Перенаправление всех на сабдомен
Redirect permanent / http://test.example.org/
# Для замены всех .htm фалов .html файлами
RewriteRule ^(.*)\.htm$ $1.html [R=permanent]
# 301й Редирект
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,L]
# Отображение разных страниц, в зависимости от IP адреса посетителя
SetEnvIf REMOTE_ADDR <192.0.43.10> REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /cool_page.htm
# Удалить /additionally/ из пути в адресе
RewriteRule ^additionally/(.+)$ httр://example.org/$1 [R=301,L]
# Перезапись URL адресов (Перенаправление с одного URLа другой) : RewriteRule текущийURL перезаписываемыйURL
RewriteRule ^(.*)shop/(.*)$ $1cgi-bin/shop.cgi?$2
При запросе http://example.com/cgi-bin/shop.cgi?product1 URL отобразиться так: http://example.com/shop/product1 .
Таким способом можно превратить динамический сайт в сайт, имеющий статическую структуру.
# Перенаправление домашних каталогов для посторонних
RewriteEngine on
RewriteCond %{REMOTE_HOST} !^.+\.yourdomain\.com$
RewriteRule ^(/~.+) http://www.example.org/$1 [R,L]
# Перенаправление несуществующих URL на другой сервер
RewriteEngine on
RewriteCond %{REQUEST_URI} !-U
RewriteRule ^(.+) http://example.org/$1
Дополнительная информация
Подробное описание модуля mod_rewrite можно посмотреть в документации Apache по адресу http://httpd.apache.org/docs/current/mod/mod_rewrite.html .