Назад к инструментам

Генератор .htaccess

Включайте нужные блоки правил — редиректы, HTTPS, страницы ошибок, защита паролем, усиление безопасности, кэширование — и собирайте их в один упорядоченный файл .htaccess. Каждое поле выводится как обычный текст, так что ничто из введённого здесь никогда не выполняется.

Редиректы

Редиректы URL 301 / 302

Отправляет старый путь на новый. Выполняется до единой точки входа, так что маршрутизация PHP-приложения никогда их не перехватывает.


Схема и хост

Принудительный HTTPS и канонизация www

Сайт должен отвечать ровно на одной схеме и одном хосте. Всё остальное должно на него перенаправлять.

www ⇄ без www

Ошибки

Кастомные страницы ошибок

Показывайте свою страницу вместо страницы Apache по умолчанию, когда запрос получает 404, запрещён или сервер спотыкается.

Контроль доступа

Защитить директорию паролем

Basic Auth силами самого Apache — окно входа перед папкой, без участия кода приложения.

Усиление защиты

Усиление безопасности

Небольшие директивы, закрывающие распространённые, реально эксплуатируемые ошибки конфигурации.

Производительность

Сжатие и кэширование в браузере

Два независимых плюса: меньший размер ответов по сети и полный пропуск запроса для вернувшихся посетителей.

Трафик

Защита от хотлинков

Не давайте другим сайтам встраивать ваши картинки напрямую и жечь ваш трафик, проверяя заголовок Referer.

PHP-приложения

Rewrite для единой точки входа

Направляет каждый запрос, который не является реальным файлом или папкой, на один PHP-файл, чтобы собственный роутер приложения решал, что с ним делать.

Итоговый файл

.htaccess

Правила rewrite выполняются сверху вниз внутри одного блока движка, в этом порядке:

  1. Принудительный 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 ничего не делает.

Это механизм только для Apache, и даже на Apache он часто отключён (AllowOverride None), потому что проверка на каждый запрос медленная. Nginx нужны эквивалентные правила, написанные прямо внутри server block. Преобразовать это в конфиг Nginx

Управляете собственным игровым сервером?

Игровые серверы Wespner с защитой от DDoS, дисками NVMe и активацией за несколько минут.

Посмотреть хостинг