Вебинары Разобраться в IT Реферальная программа Тесты
Программирование Аналитика Дизайн Маркетинг Управление проектами
09 Фев 2025
9 мин
109

Что такое .htaccess: где находится и как настроить файл

Пройдите тест, узнайте какой профессии подходите

Один из таких веб-серверов — это Apache. Он бесплатный, поддерживает PHP и другие языки программирования, его легко настраивать и использовать, поэтому

Изучаем, как создать .htaccess, какую роль он выполняет и как его настроить.

.htaccess что это

Всё, что вы видите на сайтах в интернете, находится на серверах — специальных компьютерах, которые хранят и в автоматическом режиме обрабатывают запросы пользователей.

Каждый сервер, как сейф: хранит данные в безопасности, работает двадцать четыре часа в сутки, семь дней в неделю.

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

Настройки любого сервера хранятся в главных конфигурационных файлах. В них прописывают команды, которые изменяют поведение веб-приложений и сайтов, не внося правок в код.

Но не у всех владельцев веб-сайта есть к ним доступ: некоторые пользуются хостингом.

Хостинг — это уже не сейф, а целый банк со множеством ячеек. Вы можете арендовать в банке сейф, но вряд ли сможете выкупить целый банк. Поэтому вы, конечно, получите код от своей ячейки, а вот ключи ко всей системе безопасности банк не отдаст.

Представьте, что вы — владелец небольшого сайта и платите за хостинг. Это значит, что на том же самом сервере хостятся еще несколько сайтов других людей. Хостер — владелец сервера — не даст вам доступ к конфигурации сервера.

Но изменения всё равно вносить надо: настройки сайта определяют, насколько он безопасный, как быстро работает и даже — есть ли к нему доступ. Без доступа к настройкам нельзя перенаправить пользователей с одной страницы на другую или защитить сайт от злоумышленников.

Файл .htaccess как раз нужен, чтобы вносить изменения в настройки своего сайта без доступа к главной конфигурации сервера.

Зачем он нужен

С помощью .htaccess можно:

  • изменить настройки для отдельных папок и подпапок;
  • закрыть доступ к файлам или установить пароль на файл или папку;
  • настроить переадресацию;
  • изменить структуру URL;
  • включить сжатие данных, чтобы сайт быстрее грузился;
  • ограничить доступ по IP;
  • управлять кодировкой сайта.

Без этого файла многие настройки пришлось бы делать через панель хостинга или вручную в конфигурационных файлах сервера.

Это похоже на универсальный пульт управления системой «умного дома», когда вы можете закрыть ставни, включить свет или поменять температуру в одной комнате и никак не влияете на остальной дом.

Синтаксис .htaccess

Синтаксис файла простой и понятный. Запомните несколько правил и проверяйте код через валидаторы, чтобы ошибки не поломали сайт.

Правило № 1. Каждая директива пишется с новой строки

Директивы — это команды, которые настраивают поведение сервера. Каждую директиву нужно писать на новой строке.

Например, если вы хотите перенаправлять пользователя с одной страницы на другую и установить кэширование, команды должны быть на двух разных строках.

Redirect /old-page.html /new-page.html
ExpiresActive On

Представьте, что вы выключаете свет и включаете музыку — это разные команды. Их нужно произносить отдельно, чтобы не путать систему: она начнет выполнять новую команду, когда закончит предыдущую.

Правило № 2. Комментарии начинаются с символа #

Чтобы добавить комментарий, начните строку с «#». Комментарии подскажут разработчикам, что делает та или иная часть файла. Сервер будет игнорировать строки с комментариями.

# Перенаправление со старой страницы на новую
Redirect /old-page.html /new-page.html

Правило № 3. Чувствительность к регистру зависит от директивы

Если директива чувствительна к регистру, значит, она понимает, когда команда написана с заглавной буквы. Или если одна из букв внутри — заглавная. При этом директива не понимает, что вы могли написать команду с заглавной буквы случайно, и правильно команду не выполнит.

Некоторые директивы чувствительны к регистру, но большинство — нет. Проверяйте документацию, чтобы знать наверняка.

Пример: директиву redirect можно писать с заглавной буквы или с маленькой — она нечувствительна к регистру.

Redirect /old-page.html /new-page.html
redirect /old-page.html /new-page.html

Даже если сами директивы нечувствительны к регистру, параметры внутри них могут быть чувствительны. Например, в директиве RewriteRule регистр имеет значение, если вы используете регулярные выражения.

RewriteEngine On
RewriteRule ^Page$ /different-page.html [L] # сработает только для /Page
RewriteRule ^page$ /another-page.html [L] # сработает только для /page

Эти правила распространяются только на файл .htaccess. Сами сайты написаны другими языками с более сложным синтаксисом: HTML, CSS, JavaScript. Если вы хотите научиться работать с ними, поступайте на курс «Веб-разработчик».

.htaccess где находится

Файл лежит в корне сайта (папка public_html, www или htdocs). Он скрытый. Включите отображение скрытых файлов в файловом менеджере, чтобы его увидеть.

Как создать htaccess

Создать файл с нуля очень просто: для этого подойдет любой текстовый редактор. Хотя лучше использовать Notepad++ и Sublime Text.

  1. Откройте текстовый редактор.
  2. Напишите нужные настройки.
  3. Сохраните файл с именем .htaccess. Без расширения. Для этого в Windows нужно указать тип файла «Все файлы», чтобы не добавилось расширение .txt.
  4. Загрузите его на сервер через FTP или файловый менеджер.

Как настроить htaccess

Сначала подключитесь к серверу через FTP/SFTP-клиент. Затем найдите файл в корневой папке сайта (часто это /public_html, /www или /htdocs).

Скачайте файл и откройте в текстовом редакторе (Notepad++, Sublime Text, VS Code). Не используйте обычный Notepad (Блокнот) — он поломает кодировку файла.

Если у вас есть панель управления хостингом (cPanel, ISPManager) — найдите раздел «Файловый менеджер». В нём откройте основную папку сайта, найдите файла .htaccess и нажмите «Редактировать».

Как настроить файл

Очень просто — следуйте инструкции.

Главная страница по умолчанию

Если вы зайдете в папку на сервере, Apache покажет список всех файлов (как в проводнике Windows). Такая настройка установлена по умолчанию, но это небезопасно.

Вместо этого укажите, какой файл открывать, когда кто-то заходит в папку сайта.
Например:

DirectoryIndex index.php index.html

Теперь сервер откроет файл index.php, а если его нет, покажет index.html. Всегда ставьте «главный» файл первым: так проще работать с ним.

Файл выполняет ту же функцию, что схема ТЦ или схема офиса на входе: помогает сориентироваться тем, кто только что оказался в помещении и не знает, куда идти.

Редиректы

Представьте: вы переименовали страницу «О нас» с about.html на about-us.html. Посетители, которые сохранили старую ссылку, никуда не попадут по ней.

Редирект решит эту проблему. Он похож на автоисправление адреса в приложении с картами: если вы введете старое название улицы, вам наверняка предложат ее корректный новый вариант.

Вот как выглядит редирект:

Redirect 301 /about.html /about-us.html

301 — код «страница перемещена навсегда». Это важно для SEO: поисковики обновят ссылки в выдаче.

Есть и более сложный вариант:

RewriteEngine On
RewriteRule ^old-about$ /about-us [R=301,L]

Если в адресе есть old-about (например, site.com/old-about), пользователь автоматически перейдёт на site.com/about-us.

Базовая аутентификация

Допустим, у вас есть папка /admin с настройками сайта. Чтобы ее защитить:

  1. Создайте файл .htpasswd через онлайн-генератор. В нём будут логин и пароль.
  2. Добавьте в .htaccess:

AuthType Basic
AuthName "Требуется пароль"
AuthUserFile /полный/путь/до/.htpasswd
Require valid-user
:
Если положить этот код в папку /admin, при попытке зайти в нее браузер покажет окно ввода пароля.

Страницы ошибок

Страница 404 Not Found — всё равно что записка «ушла на обед до 15:00» от продавца в ларьке. Покупатель всё равно недоволен, что не может ничего купить, но хотя бы понимает почему. И не будет ждать, если на часах сейчас 14:00.

Так и в интернете: страница 404 сообщает: страницы, которую искал пользователь, нет. Но стандартная страница «404 Not Found» выглядит скучно. Гораздо лучше, если она:

  • проговаривает простым человеческим языком, что страницы не существует;
  • предлагает вернуться на главную сайта;
  • показывает, как воспользоваться поиском по сайту.

Тогда и процент уходов с сайта падает.

Например, Т-Банк использует эту страницу, чтобы еще раз направить пользователя к своим продуктам:
страница недоступна

Страница 404 может выглядеть очень просто, но всё равно с ее помощью можно общаться с посетителем понятно и непринужденно:
страница недоступна

А тут и вовсе всё понятно без слов:

мем с котом

Создайте свою страницу 404, чтобы удержать посетителей:

ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/oops.html

Замена протокола HTTP на HTTPS

Представьте: вы живете в Древней Греции. Вам нужно передать послание соседу. Проще простого: пишете его на папирусе и отдаете гонцу. А если послание — не соседу, а другу из другого города и информация очень важная?

Тогда ее нужно зашифровать. В древности для этого использовали рукописные шифры. В интернете используют шифрованный трафик.

Без HTTPS данные пользователей (пароли, платежи) передаются в открытом виде. Переведите весь трафик на защищенное соединение:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Если пользователь введет http://site.com, его автоматически перебросит на https://site.com.

Про само шифрование подробно рассказали тут.

Ограничение доступов

Заметили, что с IP 185.100.85.2 постоянно приходит спам? Запретите доступ:

Order deny,allow
Deny from 185.100.85.2
Allow from all

К сожалению, это не панацея — злоумышленники могут использовать VPN и обходить этот запрет. Но для блокировки конкретных ботов подойдет.

Ограничение запросов

Ограничение запросов может спасти сайт от DDoS-атак. Если его атакуют, модуль mod_evasive заблокирует подозрительные запросы:

DOSPageCount 2 # Максимум 2 запроса в секунду на одну страницу
DOSSiteCount 50 # Не более 50 запросов в секунду на весь сайт
DOSBlockingPeriod 10 # Блокировать на 10 секунд при нарушении

Кодировка

Все буквы и цифры для компьютера обозначаются числовыми значениями. Система, по которой зашифрованы буквы и цифры в числа, называется кодировкой.

Кодировки есть разные. Так что если вы откроете или сохраните файл не в той кодировке, что нужна, — можете его поломать. Файл .htaccess использует кодировку UTF-8.

Так что если вместо слова «Привет» вы видите «ÐŸÑ€Ð¸Ð²ÐµÑ‚», добавьте:

AddDefaultCharset UTF-8

Общие советы

Все настройки можно собирать в одном файле:

# Главная страница
DirectoryIndex index.php

# Кастомные страницы ошибок
ErrorDocument 404 /404.html

# Переход на HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Защита админки
<Files "admin.php">
AuthType Basic
AuthName "Только для админов"
AuthUserFile /home/user/.htpasswd
Require valid-user

Всегда делайте резервную копию .htaccess перед правкой — одна ошибка может «положить» сайт. Проверяйте код через валидатор.

Не усложняйте содержимое файла без нужды — каждое правило замедляет обработку запросов.

Хотите узнать больше про настройку и создание сайтов? Поступайте на курс «Веб-разработчик». Эксперты в области разработки сайтов научат вас работать с HTML, CSS и Java Script руками, а также собирать сайты в известных блочных конструкторах.

Главное

  1. Файл .htaccess открывает доступ к настройкам сервера, когда нет доступа к главной его конфигурации: при использовании общего хостинга и ограниченных правах.
  2. Этот файл дает инструменты для редиректов, управления доступом, изменения URL и включения сжатия. Сайт лучше защищен и быстрее работает, если он грамотно настроен.
  3. Синтаксис .htaccess прост: нужно писать каждую директиву с новой строки и использовать «#» для комментариев. Правила регистра зависят от типа директивы.
  4. Файл лежит в корне сайта, но его не видно без отображения скрытых файлов. Редактирование в Notepad++ или Sublime Text исключает проблемы с кодировкой.
  5. .htaccess позволяет выбирать главную страницу, включать HTTPS, ограничивать доступ по IP и задавать собственные ошибки. Эти настройки нужны для стабильной работы и защиты сайта.
  6. Перед изменением .htaccess нужно создавать резервные копии и проверять код в валидаторе. Небольшая ошибка может положить весь сайт.

Добавить комментарий