T

Text Machine

Мощные текстовые инструменты прямо в браузере

Генератор .htaccess

Создавайте типовые правила .htaccess для вашего сайта. Выберите нужные опции и скопируйте сгенерированный код.

Опции

Performance

Security

Сгенерированный код .htaccess
Important Notes

• The .htaccess file should be placed in the root directory of your website
• Make sure mod_rewrite is enabled on your Apache server
• Always backup your existing .htaccess file before replacing it
• Some hosting providers may restrict certain .htaccess directives

Как пользоваться Генератор .htaccess

  1. 1

    Введите домен

    Введите имя домена, например example.com, в поле настроек домена.

  2. 2

    Выберите правила

    Отметьте нужные параметры, например принудительный HTTPS, принудительное добавление или удаление www, GZIP-сжатие, защиту от хотлинкинга или собственные страницы ошибок.

  3. 3

    Добавьте перенаправления

    Для перенаправлений URL введите старый и новый пути и выберите постоянное перенаправление 301 или временное 302.

  4. 4

    Скопируйте или скачайте

    Используйте «Копировать в буфер обмена» или «Скачать .htaccess» и загрузите файл в корневой каталог вашего сайта.

Освоение файла .htaccess для Apache

Что на самом деле делает файл .htaccess

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

Имя файла — буквально .htaccess, с ведущей точкой и без расширения, и в Unix-подобных системах точка делает его скрытым файлом. Его место — в том каталоге, поведение которого вы хотите изменить; чаще всего это корневой каталог документов вашего сайта. Правило в корне действует на весь сайт, если только более глубокий .htaccess его не переопределяет.

Только Apache: Nginx и другие его игнорируют

Это первое, что стоит проверить, прежде чем писать хоть одно правило: .htaccess — это возможность Apache. Nginx, другой доминирующий веб-сервер, вообще не читает файлы .htaccess и никогда не будет — так задумано. Если ваш сайт работает на Nginx, помещение .htaccess в корень не даёт ничего, а эквивалентные перенаправления, переписывания и заголовки нужно вместо этого выразить в блоке server для Nginx. LiteSpeed и несколько Apache-совместимых серверов действительно понимают синтаксис .htaccess, но Nginx, Caddy и IIS используют каждый свой формат конфигурации.

Если вы не уверены, какой у вас сервер, проверьте заголовок ответа Server, который может показать «Просмотр HTTP-заголовков» на этом сайте. Если вы видите там Apache, это подтверждает, что .htaccess будет работать; если вы видите nginx, значит, с этим файлом вы пошли по неверному пути.

Перенаправления и канонизация с mod_rewrite

Самая распространённая задача для .htaccess — перенаправление URL, которое он выполняет через модуль mod_rewrite, обёрнутый в блок RewriteEngine On. Простой постоянный перенос использует Redirect 301 со старого пути на новый, а RewriteRule обрабатывает перенаправления по шаблонам с регулярными выражениями. Две задачи канонизации, которые нужны почти каждому сайту, — это принудительное использование единственного имени хоста (всегда www или всегда без www) и принудительный HTTPS; обе достигаются через RewriteCond, который проверяет входящий запрос, за которым следует RewriteRule, выдающий 301 на каноническую версию.

Всегда используйте 301 (постоянный) для переносов, которые вы намерены сохранить, потому что 301 передаёт ссылочный вес адресату и говорит поисковым системам обновить их индекс. Тонкая, но важная деталь — избегать цепочек перенаправлений: отправляйте http://example.com прямо на https://www.example.com за один шаг, а не отскакивая сначала через https://example.com. Каждый лишний шаг добавляет задержку и слегка размывает сигналы ранжирования; обнаружить такое поможет «Проверка цепочек перенаправлений» на этом сайте.

Производительность: сжатие, кэширование и цена AllowOverride

Две возможности .htaccess дают немедленный выигрыш в производительности. Сжатие GZIP, настраиваемое через mod_deflate, уменьшает текстовые ответы вроде HTML, CSS и JavaScript перед отправкой, нередко сокращая размер передачи на 60–80 процентов. Кэширование в браузере, задаваемое заголовками Cache-Control и Expires через mod_expires или mod_headers, говорит браузерам повторно использовать статические ресурсы вроде изображений и шрифтов вместо повторного скачивания при каждом посещении. Вместе это одни из самых эффективных и наименее трудозатратных способов ускорения.

Однако у самого .htaccess есть скрытая цена. Поскольку Apache должен проверять наличие файла .htaccess в каждом каталоге на пути каждого запроса, включённый AllowOverride добавляет обращения к файловой системе на каждый запрос. На высоконагруженном сайте, который вы контролируете, перенос этих директив в основную конфигурацию сервера и установка AllowOverride None измеримо быстрее. На виртуальном хостинге у вас обычно нет выбора, и удобство перевешивает накладные расходы, но стоит понимать, почему .htaccess не рекомендуется для серверов, критичных к производительности.

Безопасность, страницы ошибок и контроль доступа

Помимо перенаправлений и производительности, .htaccess широко используется для усиления и доводки сайта. Собственные страницы ошибок, задаваемые директивой ErrorDocument, заменяют унылые стандартные экраны ошибок Apache фирменными страницами для ответов 404 и 500, что лучше и для пользователей, и для безопасности. Защита от хотлинкинга использует RewriteCond по заголовку Referer, чтобы другие сайты не встраивали ваши изображения и не расходовали ваш трафик. Вы также можете отправлять заголовки безопасности, такие как X-Frame-Options, Content-Security-Policy и Strict-Transport-Security, через директиву Header.

Для контроля доступа .htaccess может ограничивать каталог по IP-адресу или требовать пароль через .htpasswd, а также блокировать сканирования перечисления авторов, которые прощупывают имена пользователей в системах управления контентом. Эти меры действительно полезны, но помните, что они срабатывают, только когда Apache обслуживает запрос обычным путём; сочетайте их с надлежащей безопасностью на уровне приложения, а не полагайтесь на один .htaccess.

Синтаксис не прощает ошибок: проверяйте, прежде чем доверять

Самый большой риск с .htaccess в том, что синтаксическая ошибка обычно не проходит тихо. Вместо этого она вызывает 500 Internal Server Error для каждой страницы в этом каталоге, выводя весь сайт из строя, пока файл не будет исправлен. Здесь нет ни этапа компиляции, ни проверки перед развёртыванием, поэтому опечатка, отсутствующий модуль или директива, отключённая вашим хостингом, могут мгновенно всё сломать. Директивы Apache также чувствительны к порядку: правила переписывания вычисляются сверху вниз, и широкое правило, поставленное перед конкретным, может поглотить запросы, которые должно было ловить конкретное правило.

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

Часто задаваемые вопросы

Какие правила может создавать этот генератор?
Он создаёт распространённые правила Apache, включая принудительное добавление или удаление www, принудительный HTTPS, перенаправления 301 и 302, GZIP-сжатие, управление кэшем, защиту от хотлинкинга, собственные страницы ошибок, MIME-типы и файлы индекса по умолчанию.
В чём разница между перенаправлениями 301 и 302?
301 — это постоянное перенаправление, передающее SEO-вес новому URL, а 302 — временное и сообщает поисковым системам, что исходный URL вернётся.
Куда поместить сгенерированный файл .htaccess?
Поместите его в корневой каталог вашего сайта на сервере Apache. Правила вступают в силу немедленно, поэтому сначала сделайте резервную копию любого существующего файла .htaccess.
Работает ли это на Nginx или других серверах?
Нет. Формат .htaccess специфичен для Apache (и совместимых серверов с mod_rewrite). Nginx вместо этого использует собственный синтаксис конфигурации.
Отправляется ли сгенерированный код куда-либо?
Нет. Правила собираются в вашем браузере из выбранных вами параметров, поэтому ничего не загружается, а инструмент бесплатен в использовании без регистрации.

Похожие инструменты

Продолжайте работу с этими удобными инструментами

Проверка цепочек перенаправлений URL

Генератор Мета-Тегов

Генератор Robots.txt

Open Graph Previewer

Кодировщик/Декодировщик HTML-сущностей

Просмотр HTTP-заголовков