Якщо ви працюєте з веб-сайтом на сервері Apache, файл .htaccess є одним з найпотужніших інструментів у вашому розпорядженні. Він дозволяє вам керувати поведінкою ваших URL-адрес – від перенаправлення до чистого перезапису URL-адрес – без необхідності змінювати конфігурацію вашого сервера.

У цій статті ми розглянемо основи перенаправлення і перезапису URL-адрес за допомогою .htaccess з наочними прикладами і поясненнями.

Що таке файл .htaccess?

.htaccess розшифровується як Гіпертекстовий доступ. Це конфігураційний файл, який використовується на веб-серверах на базі Apache і дозволяє вносити зміни в поведінку сервера на рівні каталогів.

Ви можете

  • Перенаправляти трафік з однієї URL-адреси на іншу

  • Створювати чисті URL-адреси (наприклад, /about замість /about.php)

  • Обмежити доступ до певних сторінок

  • Увімкнути HTTPS

  • І багато іншого

Перенаправлення URL-адрес

1. 301 Постійний редирект

Використовуйте його, коли сторінка назавжди переїхала на нову URL-адресу.

Перенаправлення 301 /old-page.html https://yourdomain.com/new-page.html

2. 302 Тимчасовий перенаправлення

Використовуйте його, коли перенаправлення є тимчасовим.

Перенаправлення 302 /temp-page.html https://yourdomain.com/coming-soon.html

3. Перенаправлення за допомогою mod_rewrite

Ви також можете виконати перенаправлення за допомогою RewriteRule:

RewriteEngine On
RewriteRule ^old-page$ https://yourdomain.com/new-page [R=301,L]

Переписування URL-адрес (чисті URL-адреси)

Переписування URL-адрес використовується для того, щоб зробити URL-адреси більш зручними для користувача і SEO. Наприклад, замість

https://example.com/product.php?id=123

Ви можете використовувати

https://example.com/product/123

1. Основне правило рерайтингу

RewriteEngine On
RewriteRule ^product/([0-9] )$ product.php?id=$1 [L]

Це повідомляє Apache:

  • Коли хтось звертається до /product/123

  • Внутрішньо перепишіть його на product.php?id=123

2. Видаліть розширення .php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.] )$ $1.php [L]

Це дозволить користувачам отримати доступ до example.com/about замість example.com/about.php.

Кращі практики

  • Завжди робіть резервну копію файлу .htaccess перед внесенням змін.

  • Використовуйте [L], щоб зупинити подальшу обробку правил після того, як знайдено збіг.

  • Тестуйте редиректи за допомогою таких інструментів, як httpstatus.io.

  • Не змішуйте Redirect і RewriteRule в одному блоці – віддавайте перевагу RewriteRule для узгодженості.

Бонус: Примусове використання HTTPS за допомогою .htaccess

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Це змушує весь трафік використовувати HTTPS – необхідний для сучасної безпеки та SEO.

Висновок

Файл .htaccess дає вам неймовірний контроль над тим, як працюють ваші URL-адреси. Незалежно від того, чи перенаправляєте ви старі сторінки, чи очищаєте заплутані URL-адреси, чи захищаєте свій трафік, засвоєння цих простих правил може значно покращити продуктивність вашого веб-сайту та зручність користування ним.