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

то просто додайте знизу код (запуск модуля із зазначенням кореневого 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