Генератор .htaccess для Apache
Создайте правила Apache .htaccess: принудительный HTTPS, добавление или удаление www, редиректы 301, страницы ошибок, gzip, кэширование, заголовки безопасности.
Код может быть 301, 302, 303, 307, 308 или 410 (удалено). Новый путь может быть полным URL.
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
# Redirects (mod_alias)
Redirect 301 /old-page /new-page
Redirect 301 /blog/2019 /blog
# Custom error pages
ErrorDocument 404 /404.html
# Disable directory listings
Options -Indexes
# Block access to hidden files such as .env and .git
<FilesMatch "^\.">
Require all denied
</FilesMatch>
RedirectMatch 404 /\.git
# Security headers
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
</IfModule>
# Compress text responses
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript
AddOutputFilterByType DEFLATE application/javascript application/json application/xml application/rss+xml
AddOutputFilterByType DEFLATE image/svg+xml font/ttf font/otf
</IfModule>
# Browser caching
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 month"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/webp "access plus 1 year"
ExpiresByType image/avif "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
</IfModule>
Что такое Генератор .htaccess?
Инструмент создаёт готовый файл .htaccess для Apache 2.4. Отметьте нужные возможности: перенаправление на HTTPS, канонический хост с www или без, HSTS, отключение списка каталогов, защита скрытых файлов, сжатие gzip, кэширование в браузере, базовые заголовки безопасности, и добавьте свои редиректы 301/302/410 и страницы ошибок.
Как пользоваться Генератор .htaccess
- Отметьте нужные опции и выберите, как обрабатывать www.
- Введите редиректы как
/old-path /new-path, при желании с кодом статуса (301, 302, 303, 307, 308 или 410). - Введите пути для своих страниц 404 и 500.
- Скопируйте или скачайте результат как .htaccess и сначала проверьте его на тестовом сервере.
Пример
Force HTTPS, remove www, redirect /old-page → /new-page
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
Redirect 301 /old-page /new-page Когда использовать Генератор .htaccess
Используйте на виртуальном хостинге или серверах Apache, где нельзя править основной конфиг сервера. Для Nginx, собственных настроек LiteSpeed, Cloudflare или CDN используйте их конфигурацию: Nginx полностью игнорирует .htaccess. Синтаксическая ошибка вызывает HTTP 500 для всего каталога, поэтому всегда проверяйте.
Как работает Генератор .htaccess
Правила HTTPS и www используют mod_rewrite (RewriteCond %{HTTPS} off и условия по хосту) внутри <IfModule mod_rewrite.c>; перенаправление www использует https напрямую, когда HTTPS принудителен, избегая цепочки из двух шагов. Редиректы путей используют строки Redirect из mod_alias (Redirect gone для 410). Сжатие использует mod_deflate, кэширование mod_expires с длинными сроками для статики и без срока для HTML, заголовки mod_headers с Header always set. Точечные файлы запрещаются через <FilesMatch "^\."> и RedirectMatch 404 /\.git.
Распространенные Случаи Использования
- Принудительно включить HTTPS и единый хост без www после установки сертификата.
- Перенаправить старые URL после редизайна сайта.
- Включить сжатие и кэширование для ускорения сайта WordPress на виртуальном хостинге.
- Заблокировать доступ к файлам .env и .git.
Часто Задаваемые Вопросы
Почему после загрузки .htaccess появляется ошибка 500?
Обычно не включён нужный модуль или директива не разрешена через AllowOverride. Проверьте журнал ошибок Apache.
Стоит ли включать HSTS?
Только когда весь сайт и все поддомены работают по HTTPS: браузеры будут отказываться от обычного HTTP на срок max-age.
Работает ли .htaccess на Nginx?
Нет. Nginx не читает .htaccess; правила нужно перенести в блок server.