Тест на уважність!

Знижка 20% та розіграш

у нашому Telegram

Приєднатись

Даруємо пляшки для води за Хостинг і VPS до 31.08.2025

Отримати дарунок

Інструкція для веб-майстрів: секрети налаштувань файлу .htaccess

post thumbnail

Файл .htaccess – це файл для додаткових налаштувань web-сервера Apache. Правила в .htaccess застосовуються для каталогу, в якому він створений, і для всіх його підкаталогів. Це дозволяє додати правила як для всього сайту, так і для конкретного каталогу. Як можна помітити, ім’я даного файлу починається з крапки, що в unix-системах вказує на те, що файл є прихованим.

Основними перевагами налаштувань в .htaccess є:

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

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

Крок 1 – Переспрямування з http на https

Для перенаправлення всіх сторінок сайту з http на https досить додати таке правило в початок файлу .htaccess, який розташований в кореневій папці сайту:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !robots.txt$
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Крок 2 – Обмеження доступу до сайту

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

deny from all
allow from 123.123.123.123

Даним правилом ми навпаки закриваємо доступ для конкретної IP-адреси 123.123.123.123:

deny from 123.123.123.123

Обмеження доступу до конкретного файлу, в прикладі файл cron.php:

<Files "cron.php">
deny fromm 123.123.123.123
</Files>

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

Крок 3 – Перенаправлення 301

Перенаправлення 301 з головної сторінки сайту на URL http://your_site.ua можна зробити таким чином. В цьому прикладі і наступних замість your_site.ua потрібно вказати ім’я вашого сайту або потрібний URL.

Redirect 301 / https://your_site.ua

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

Redirect 301 /my_dir https://your_site.ua

Наступне правило використовується для перенаправлення всіх сторінок домену your_site.ua на відповідні сторінки іншого домену your_new_site.ua. Дане правило потрібно додати в .htaccess сайту, зі сторінок якого повинен бути редирект, в прикладі це your_site.ua:

RewriteCond %{HTTP_HOST} ^www\.your_site\.ua$ [NC]
RewriteRule ^(.*)$ http://your_new_site.ua/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^your_site\.ua$ [NC]
RewriteRule ^(.*)$ http://your_new_site.ua/$1 [L,R=301]

За аналогією з попереднім правилом можна зробити переспрямування з усіх сторінок www.your_site.ua на такі ж сторінки your_site.ua, тобто це редирект з www на без www:

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

І навпаки, з без www на таку ж сторінку з www:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]

Це правило допоможе позбутися від .html в кінці URL сторінки:

RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R=301]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

Ще можна прибрати / в кінці URL:

RewriteEngine on
RewriteRule (.+)/$ /$1 [L,R=301]

Або додати / в кінці URL, який не закінчуються на /:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Крок 4 – Кодування сайту

У .htaccess також можна примусово встановити кодування для сайту використовуючи директиву AddDefaultCharset і передаючи їй один параметр – бажане кодування, наприклад:

AddDefaultCharset UTF-8

або

AddDefaultCharset WINDOWS-1251

Або можна відключити установку кодування web-сервером використовуючи директиву:

CharsetDisable on

Крок 5 – Перепризначення сторінок помилок

Ці правила замінять стандартні сторінки помилок на зазначені користувацькі. Посилання http://your_site.ua/error_page_404.html та інші потрібно замінити на ваші посилання сторінок помилок:

ErrorDocument 404 https://your_site.ua/error_page_404.html
ErrorDocument 403 https://your_site.ua/error_page_403.html
ErrorDocument 500 https://your_site.ua/error_page_500.html

Крок 6 – Встановлення нестандартного індексного файлу

При відкритті будь-якого веб-сайту сервер шукає в кореневій папці індексний файл, який за замовчуванням заданий як index.php або index.html. У разі, якщо наш індексний файл відрізняється від заданих за замовчуванням, і називається, наприклад, main.php, ми можемо це вказати в .htaccess директивою:

DirectoryIndex main.php

Висновок

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

Telegram Hostpro

Наш телеграм

з важливими анонсами, розіграшами й мемами

Приєднатися

Можливо, вас зацікавить

Як переглянути логи сервера на віртуальному хостингу

Як переглянути логи сервера на віртуальному хостингу

Чи траплялося вам, що сайт раптово перестає працювати без жодних очевидних причин? Ви вже...

Anastasiia Saksa | Оновлено: 22.07.2025

Як увімкнути Maintenance Mode на сайті WordPress?

Як увімкнути Maintenance Mode на сайті WordPress?

Maintenance Mode – це режим технічного обслуговування сайту. Коли він активний, при спробі зайти...

Anastasiia Saksa | Оновлено: 06.05.2025

Як замінити всі посилання в файлах і базі даних сайту

Як замінити всі посилання в файлах і базі даних сайту

Ця стаття буде бонусною в циклі про боротьбу зі змішаним контентом при перенесенні сайту...

Diana Honcharenko | Оновлено: 10.04.2025

Встановлення та налаштування локального вебсервера MAMP на Windows

Встановлення та налаштування локального вебсервера MAMP на Windows

Локальне середовище розробки — це незамінний інструмент для будь-якого веброзробника. Воно дозволяє тестувати сайти,...

Maryana Movchaniuk | Оновлено: 10.04.2025