Генератор .htaccess
Включайте нужные блоки правил — редиректы, HTTPS, страницы ошибок, защита паролем, усиление безопасности, кэширование — и собирайте их в один упорядоченный файл .htaccess. Каждое поле выводится как обычный текст, так что ничто из введённого здесь никогда не выполняется.
Редиректы
Редиректы URL 301 / 302
Отправляет старый путь на новый. Выполняется до единой точки входа, так что маршрутизация PHP-приложения никогда их не перехватывает.
Схема и хост
Принудительный HTTPS и канонизация www
Сайт должен отвечать ровно на одной схеме и одном хосте. Всё остальное должно на него перенаправлять.
Ошибки
Кастомные страницы ошибок
Показывайте свою страницу вместо страницы Apache по умолчанию, когда запрос получает 404, запрещён или сервер спотыкается.
Контроль доступа
Защитить директорию паролем
Basic Auth силами самого Apache — окно входа перед папкой, без участия кода приложения.
Усиление защиты
Усиление безопасности
Небольшие директивы, закрывающие распространённые, реально эксплуатируемые ошибки конфигурации.
Производительность
Сжатие и кэширование в браузере
Два независимых плюса: меньший размер ответов по сети и полный пропуск запроса для вернувшихся посетителей.
Трафик
Защита от хотлинков
Не давайте другим сайтам встраивать ваши картинки напрямую и жечь ваш трафик, проверяя заголовок Referer.
PHP-приложения
Rewrite для единой точки входа
Направляет каждый запрос, который не является реальным файлом или папкой, на один PHP-файл, чтобы собственный роутер приложения решал, что с ним делать.
Итоговый файл
.htaccess
Правила rewrite выполняются сверху вниз внутри одного блока движка, в этом порядке:
- Принудительный HTTPS
Итоговый .htaccess
# .htaccess — composed with Wespner's .htaccess Generator
# Review before deploying: https://wespner.eu/tools
<IfModule mod_rewrite.c>
RewriteEngine On
# Force HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# Custom error pages
ErrorDocument 404 /errors/404.html
# Block access to dotfiles (.git, .env, .htpasswd, ...)
<IfModule mod_authz_core.c>
<FilesMatch "^\.">
Require all denied
</FilesMatch>
</IfModule>
# Disable directory listing
Options -Indexes
# Disable the Apache version banner on error pages
ServerSignature Off
На nginx? .htaccess ничего не делает.
Управляете собственным игровым сервером?
Игровые серверы Wespner с защитой от DDoS, дисками NVMe и активацией за несколько минут.