1gb - .net, ASP, Windows, Apache, PHP хостинг
База документов / Веб-сервер Apache / Модуль mod_rewrite

Модуль mod_rewrite

смотреть документ на языке:    на украинском украинский   на русском русский

Этот модуль позволяет переписывать 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 .

 

отправить комментарий, замечание, поправку
 


 

Мы всегда готовы ответить на ваши вопросы!
 
  • Любые вопросы и поддержка - support@1gb.ua
  •  

     
       
     
    Наверх     
    Поддержка: support@1gb.ua