15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
31.10.2024
1 +1

Що таке .htaccess? Повний посібник з конфігурації Apache

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

У цьому комплексному посібнику ми розглянемо все, що вам потрібно знати про .htaccess: що це таке, як це працює, як його створити та найважливіші варіанти використання, які повинен освоїти кожен веб-адміністратор.

Що таке .htaccess?

Файл .htaccess — скорочення від «hypertext access» — це прихований текстовий файл конфігурації, який використовується Apache HTTP Server. Він дозволяє вам визначати директиви сервера на основі кожного каталогу, що означає, що правила, які ви розміщуєте у файлі .htaccess, негайно застосовуються до всіх файлів і підкаталогів у папці, де розташований файл.

На відміну від змін, внесених у основний файл конфігурації Apache (httpd.conf), правила .htaccess вступають у силу миттєво — перезавантаження сервера не потрібне. Це особливо корисно для середовищ спільного хостингу, де користувачі не мають кореневого доступу до основної конфігурації сервера.

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

> Хто використовує .htaccess? Веб-розробники, SEO-фахівці та системні адміністратори, які працюють у середовищах хостингу на основі Apache — включаючи плани Спільного веб-хостингу та VPS-хостингу — щодня покладаються на .htaccess для контролю поведінки веб-сайту.

Як створити файл .htaccess

Створення файлу .htaccess є простим, але кілька правил повинні бути дотримані точно:

  1. Використовуйте текстовий редактор такий як Nano, Vim, Notepad++ або будь-який редактор коду.
  2. Назвіть файл точно .htaccess — з початковою крапкою та без розширення файлу. Сама назва файлу є розширенням.
  3. Розмістіть файл у кореневому каталозі вашого веб-сайту (зазвичай названому public_html, www або htdocs) або в будь-якому підкаталозі, де ви хочете застосувати конкретні правила.
  4. Збережіть його як звичайний текст — ніколи не як багатий текст або відформатований документ.
  5. Встановіть правильні дозволи файлу: 644 є рекомендованим рівнем дозволу, який дозволяє власнику читати та писати, обмежуючи доступ інших лише для читання.

На сервері Linux через SSH ви можете миттєво створити файл за допомогою:

nano /var/www/html/public_html/.htaccess

Після збереження Apache негайно почне застосовувати правила.

Поширене використання .htaccess

Нижче наведені найважливіші та найширше використовувані директиви .htaccess з практичними прикладами коду.

1. Перенаправлення URL

Перенаправлення необхідні, коли сторінки переміщуються, перейменовуються або постійно видаляються. Вони зберігають SEO-значення та гарантують, що користувачів спрямовано на правильне місце.

301 Постійне перенаправлення (сторінка переміщена)

Redirect 301 /old-page.html https://www.example.com/new-page.html

Це відправляє як користувачів, так і краулери пошукових систем зі старої URL на нову, передаючи повну цінність посилання в процесі.

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

Redirect 302 /sale https://www.example.com/seasonal-offers.html

Використовуйте 302 коли перенаправлення є тимчасовим, наприклад під час акції або періоду обслуговування.

Перенаправлення всього домену

RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain.com$ [NC]
RewriteRule ^(.*)$ https://www.newdomain.com/$1 [L,R=301]

Це особливо корисно під час міграції домену — сценарій, поширений при реєстрації нового домену через сервіс на кшталт Реєстрація доменів.

2. Переписування URL для SEO-дружніх URL

Переписування URL перетворює динамічні, насичені параметрами URL на чисті, читаємі та SEO-дружні структури. Це одне з найвпливовіших використань .htaccess для поліпшення рейтингу в пошукових системах.

Увімкніть механізм переписування

RewriteEngine On

Цей рядок повинен з’явитися перед будь-якими директивами RewriteRule.

Переписування динамічних URL на чисті URL

RewriteRule ^products/([a-zA-Z0-9-]+)$ product.php?item=$1 [L]

Це переписує example.com/products/blue-sneakers на example.com/product.php?item=blue-sneakers — прозоро, без зміни того, що користувач бачить у браузері.

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

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)$ $1.php [NC,L]

Це дозволяє URL на кшталт example.com/about обслуговувати about.php без розкриття розширення файлу.

3. Примус HTTPS

Примус всього трафіку через HTTPS є фундаментальною вимогою безпеки та підтвердженим сигналом рейтингу Google. Якщо у вас встановлено SSL-сертифікат, використовуйте наступні правила .htaccess для автоматичного перенаправлення всього трафіку HTTP на безпечну версію вашого сайту.

Примус HTTPS на всьому сайті

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

Примус HTTPS та видалення www (канонічна URL)

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

Це гарантує, що ваш сайт завжди обслуговується з однієї канонічної HTTPS URL — критично важливо як для SEO, так і для безпеки.

4. Налаштування спеціальних сторінок помилок

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

Поширені коди помилок HTTP

ErrorDocument 400 /errors/400.html
ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

Найкращі практики для спеціальних сторінок помилок:

  • Включіть навігацію вашого сайту, щоб користувачі могли знайти те, що шукають.
  • Додайте панель пошуку, щоб допомогти користувачам відновитися від помилок 404.
  • Зберігайте дизайн узгодженим із брендингом вашого основного сайту.
  • Уникайте циклів перенаправлення — сторінки помилок повинні бути статичними HTML-файлами.

5. Обмеження доступу за IP-адресою

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

Блокування конкретної IP-адреси

Deny from 192.168.1.100

Блокування кількох IP-адрес

Deny from 192.168.1.100
Deny from 10.0.0.50
Deny from 203.0.113.0/24

Дозвіл лише конкретних IP (білий список)

Order Deny,Allow
Deny from all
Allow from 192.168.1.101
Allow from 203.0.113.25

Ця конфігурація блокує весь трафік, крім явно перелічених IP-адрес — ідеально для блокування панелі адміністратора WordPress або сайту staging.

6. Захист каталогів паролем

Ви можете додати HTTP Basic Authentication до будь-якого каталогу, використовуючи .htaccess разом із файлом .htpasswd.

Крок 1: Створіть файл .htpasswd

Використовуйте утиліту htpasswd на вашому сервері:

htpasswd -c /etc/apache2/.htpasswd yourusername

Крок 2: Додайте наступне до вашого файлу .htaccess

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Будь-хто, хто спробує отримати доступ до захищеного каталогу, буде запрошений ввести ім’я користувача та пароль перед входом.

7. Контроль кешування браузером

Правильно налаштоване кешування поліпшує швидкість завантаження сторінки та зменшує навантаження на сервер — обидва важливі фактори для SEO та користувацького досвіду.

Встановіть заголовки закінчення терміну дії кешу

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType text/html "access plus 1 day"
</IfModule>

8. Блокування гарячого посилання

Гаряче посилання виникає, коли інші веб-сайти безпосередньо вбудовують ваші зображення, споживаючи вашу пропускну здатність без вашого дозволу. Заблокуйте це за допомогою .htaccess:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www.)?example.com/ [NC]
RewriteRule .(jpg|jpeg|png|gif|webp|svg)$ - [F,NC]

Замініть example.com на ваш фактичний домен. Це повертає відповідь 403 Forbidden будь-якому зовнішньому сайту, який намагається гарячо посилатися на ваші зображення.

9. Вимкнення переліку каталогів

За замовчуванням Apache може відображати вміст каталогу, якщо немає файлу індексу. Це значна проблема безпеки, яка розкриває структуру вашого файлу.

Вимкніть перегляд каталогів

Options -Indexes

Цей один рядок запобігає Apache від генерування автоматичних переліків каталогів, замість цього повертаючи помилку 403 Forbidden.

Міркування щодо безпеки та продуктивності

Хоча .htaccess є надзвичайно потужним, його потрібно використовувати відповідально. Ось ключові міркування, які повинен мати на увазі кожен адміністратор:

Вплив на продуктивність

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

  • Зберігайте правила стрункими та добре організованими — видаліть будь-які правила, які більше не потрібні.
  • Використовуйте .htaccess лише де необхідно — розміщуйте його лише в каталогах, які вимагають конкретних правил.
  • Розгляньте переміщення правил до httpd.conf — у середовищах, де у вас є повний доступ до сервера — такі як VPS-хостинг або Виділений сервер — розміщення правил безпосередньо в основній конфігурації Apache значно швидше, оскільки вона читається лише один раз при запуску.

Дозволи файлу

Завжди встановлюйте дозволи файлу .htaccess на 644:

chmod 644 /var/www/html/public_html/.htaccess

Це запобігає несанкціонованим користувачам змінювати файл, дозволяючи Apache читати його.

Захистіть сам файл .htaccess

Запобігайте прямому доступу до вашого файлу .htaccess з веб-сайту:

<Files ".htaccess">
    Order Allow,Deny
    Deny from all
</Files>

Тестування та усунення неполадок правил .htaccess

Неправильний синтаксис .htaccess є однією з найпоширеніших причин відповідей 500 Internal Server Error. Дотримуйтесь цих найкращих практик для ефективного налагодження проблем:

Робіть одну зміну за раз

Ніколи не робіть кілька змін одночасно. Застосуйте одне правило, протестуйте його, потім перейдіть до наступного. Це полегшує визначення того, яке правило спричинило проблему.

Перевірте журнали помилок Apache

Журнали помилок Apache є вашим основним діагностичним інструментом:

# Ubuntu/Debian
tail -f /var/log/apache2/error.log

# CentOS/RHEL
tail -f /var/log/httpd/error_log

Тимчасово закоментуйте правила

Використовуйте символ # для закоментування правил, які ви хочете вимкнути без видалення:

###PPT_NOTR_22_CODE

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати