Файл htaccess. Редирект

31

Від автора: У цьому уроці ми з вами почнемо знайомитися з директивами перенаправлення. Можливості даних директив так чи інакше використовуються практично в будь-якому проекті, без них важко уявити роботу мало-мальськи повноцінного сайту: їх можливості використовуються для СЕО, для створення ЧПУ, для простого редиректа, для обмеження доступу до сайту або його частини і т. д.

Файл htaccess. РедиректФайл htaccess. Редирект

Директиви перенаправлення (або редіректу) ділять на дві групи: директиви простого перенаправлення та директиви складного перенаправлення (модуль mod_rewrite). Можливості першої групи директив обмежуються банальним фізичним редиректом, при якому користувач не тільки отримає вміст файлу, на який був проведений редирект, але й відбудеться зміна адреси URL (зовнішній редирект).

Можливості ж другої групи директив дозволяють виробляти перетворення URL «на льоту», не змінюючи адресний рядок браузера. Ця можливість дозволяє використовувати ЧПУ на сайті (цієї теми ми торкнемося в наступному уроці).

Отже, перша директива Redirect має наступний синтаксис:

Redirect code old_url new_url

Тут:

code – необов’язковий код статусу, з якими буде проведений редирект (за замовчуванням — 302)

old_url – запит

new_url – адресу перенаправлення

Синтаксис цієї директиви досить суворий і передбачає використання тільки абсолютних адрес, тобто в адресу повинен починатися з слеша (слеш вказує на корінь сайту). Для адреси перенаправлення (new_url) допускається використання схеми (тобто протоколу).

І кілька прикладів використання директиви Redirect:

# Редирект з file.html (знаходиться в корені) на file.php (там же)
Redirect /file.html /file.php
# Редирект з головної сторінки сайту на зовнішній адреса
Redirect / http://ya.ru
# Редирект з file.html на file.php із зазначенням коду статусу
Redirect 301 /file.html /file.php
# Використовуючи 410 код ми повідомляємо, що даний url є «мертвим»
Redirect 410 /file.html

На відміну від директиви Redirect, друга директива – RedirectMatch – дозволяє використовувати регулярні вирази, щоб задати шаблон запиту (old_url). Це більш гнучка директива, оскільки таким чином ми можемо виробляти редирект не тільки для одного файлу, але і для групи файлів.

Давайте наведемо кілька прикладів роботи з директивою RedirectMatch:

# При зверненні до файлів RAR зробимо редирект на файл file.php і GET-параметр file передамо шлях до запитаному архіву RAR
#RedirectMatch (.+\.rar)$ /file.php?file=$1
# При зверненні до файлів RAR або ZIP зробимо редирект на файл file.php і GET-параметр file передамо ім’я потрібного архіву
#RedirectMatch .*?([^/]+\.(rar|zip))$ /file.php?file=$1

У наступному уроці ми почнемо знайомитися з директивами модуля mod_rewrite, які надають набагато більше можливостей по роботі з перенаправлениями.

На цьому поточний урок завершено. Удачі і до зустрічі в наступному!