Що робить інструмент
Генератор .htaccess пише файл конфігурації Apache для найпоширеніших завдань: примусового HTTPS, вибору між www.example.com і example.com, постійних 301-редиректів, власної сторінки 404, стиснення gzip, кешування в браузері, заголовків безпеки, CORS, захисту зображень від хотлінкінгу та резервного маршруту для односторінкових застосунків.
Кожна функція — це перемикач. Файл оновлюється під час зміни параметрів, містить короткі коментарі до кожного блоку й обгортає правила, залежні від модулів, у <IfModule>, тож сайт працює й тоді, коли модуля бракує.
Як користуватися
- Введіть Домен (потрібен для правил www і хотлінкінгу).
- Увімкніть потрібні функції. Примусовий HTTPS і Префікс www об’єднуються в одне перенаправлення, тож відвідувачів ніколи не перекидає двічі.
- Додайте 301-редиректи як пари
old new, розділені;, наприклад/old-page /new-page; /blog https://blog.example.com. - Скопіюйте результат або натисніть Зберегти, щоб записати його як
.htaccess. - Викладіть файл у кореневу теку сайту й перевірте кілька URL — найкраще спершу на тестовому сервері.
Приклад
Примусовий HTTPS і прибирання www для example.com дають:
<IfModule mod_rewrite.c>
RewriteEngine On
# Force HTTPS and remove www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
</IfModule>
Поради
- Браузери кешують 301-редиректи. Під час тестування користуйтеся приватним вікном або очищайте кеш.
- Вмикайте HSTS (частина заголовків безпеки, коли HTTPS примусовий) лише тоді, коли HTTPS працює на всіх піддоменах.
- Використовуйте резервний маршрут для SPA в застосунках на React, Vue чи Angular із маршрутизацією на боці клієнта.
Часті запитання
› Куди покласти файл .htaccess?
У кореневу теку документів вашого сайту (ту, де лежить index.html чи index.php) на сервері Apache. Правила діють також для всіх вкладених тек.
› Чи працюватиме це на Nginx?
Ні. .htaccess читають лише Apache та сумісні сервери, як-от LiteSpeed. Для Nginx ті самі правила треба записати в його власній конфігурації сервера.
› Чому після завантаження файлу я отримую помилку 500?
Зазвичай не ввімкнено модуль, який використовує файл. Кожен блок обгорнуто в <IfModule>, але правила mod_rewrite та Options -Indexes все одно можуть не спрацювати, якщо хостинг забороняє їх через AllowOverride. Видаляйте розділи по одному, щоб знайти винуватця.
› Як записувати редиректи?
Введіть пари зі старого шляху й нової URL-адреси, розділені крапкою з комою, наприклад /old /new; /blog https://blog.example.com. Кожна пара стає постійним 301-редиректом.