Что это? .htaccess – служебный файл, необходимый для работы с настройками сервера. Используя его, вы не копаетесь в настройках самого сервера, а вносите изменения в директории сайта.
Как работать? Для работы с файлом на базовом уровне необходимо изучить его простой синтаксис и выучить несколько самых распространенных переменных. С опытом придет более глубокое понимание, и вы сможете решать куда более сложные задачи.
В статье рассказывается:
- Что такое .htacces
- Применение .htaccess
- Пошаговая инструкция создания файла .htaccess
- Синтаксис .htaccess
- Работа с .htaccess
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Что такое .htacces
Служебный файл с таким именем хранит расширенные параметры работы с веб-серверами (Apache и т. п.). Он необходим для корректного функционирования любого сайта.
Находясь в корневой папке, .htaccess оказывает влияние и на содержимое, расположенное во всех вложенных папках. Для индивидуальной настройки какого-то подкаталога необходимо туда поместить отдельный файл с соответствующими настройками.
Тогда именно данный документ будет более приоритетным, нежели общий. Управлять всеми файлами, загруженными на сервер, можно с помощью файлового менеджера с FTP-клиентом (FileZilla, Total Commander и др.). Также подобную возможность предоставляют некоторые хостинг-провайдеры через встроенную панель управления.
Файл .htaccess позволяет обычному пользователю (не администратору) вносить изменения в настройки ресурса. Этой возможностью пользуются, например, SEO-оптимизаторы и программисты. Основной настроечный файл httpd.conf защищен правами доступа и доступен для редактирования лишь администратору сайта, так как производимые изменения напрямую влияют на жизнеспособность ресурса.
Документ .htaccess дополняет этот файл, снимая таким образом часть ограничений. Причем произведенные в этом документе изменения вступают в силу сразу после его загрузки на сервер. А в случае правки параметров httpd.conf сервер потребуется перезагрузить.
Применение .htaccess
Перенаправления
Одна из часто используемых функций файла .htaccess — перенаправление посетителей на другие страницы или домены. Это наиболее простой способ перенаправить трафик, поскольку он реализуется до обработки запроса сервером. Имеется возможность организовать временное или постоянное перенаправление путем прописывания соответствующего кода в файле .htaccess:
Redirect 301 / http://site.com/ (всегда перенаправляет посетителя на site.com)
Redirect 302 / http://site.com/ (перенаправление на указанный сайт временное)
Блокировка доступа
С помощью настроек файла также блокируется доступ к ресурсу для указанного IP-адреса или диапазона адресов. Таким образом зачастую запрещаются любые запросы со стороны поисковых роботов.
deny from 146.0.71.199 (блокировка для IP-адреса 146.0.71.199)
Автоматическое подключение файлов
Благодаря использованию возможностей SSI (Server Side Include) и прописанным инструкциям в .htaccess html или php файлы будут подключены автоматически. При этом они добавляются в начало или конец документа исключительно по запросу пользователя, а в самом документе заранее не подключаются.
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Скачивайте и используйте уже сегодня:
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
php_value auto_prepend_file «/mysite/functions.php» (подсоединение файла functions.php из каталога /mysite к началу документа)
php_value auto_append_file «/mysite/footer.html» (подсоединение файла footer.html из каталога /mysite к концу документа)
Настройка страниц с ошибками
На указанные в файле .htaccess страницы посетитель будет перенаправляться, если на сервере возникают определенные ошибки.
ErrorDocument 404 /notfound.html (перенаправление пользователя на notfound.html в случае появления ошибки 404)
ErrorDocument 500 /server.html (перенаправление пользователя на server.html в случае появления ошибки 500)
Кэширование
Для управления процессом кэширования также используется файл .htaccess. Это позволяет браузеру быстрее загружать страницы сайтов, а серверу — снижать количество передаваемой информации.
Помимо указанных основных возможностей существуют дополнительные функции данного документа. Перечислим их ниже.
- Исправление кодировки
Кодировка определяет формат печатных символов, которые видит пользователь и воспринимает как текст. Чаще всего используются UTF-8 и Windows-1251. Нечитаемые символы означают, что установлена неверная кодировка. Исправляется эта проблема с помощью файла .htaccess.
Скачать файл- Изменение главной страницы
По умолчанию главной назначается страница, содержащаяся в индексном файле. Именно ее видит пользователь в первую очередь, когда заходит на сайт. Для явного определения другой страницы в качестве главной используется файл .htaccess.
- Создание семантического URL
Иногда слишком длинный и содержащий числа адрес требуется преобразовать в человекопонятный вид, так как иначе снижаются показатели поисковой оптимизации вследствие влияния URL на пользовательский фактор. Для этого в документ .htaccess добавляется одна команда, в которой текущему URL-адресу назначаются любые латинские символы.
- Установка пароля на каталог
Папка, содержащая конфиденциальные сведения, требует дополнительной защиты паролем. Настройка базовой аутентификации через файл позволяет повысить безопасность хранения данных при попытках взлома сайта.
- Настройка параметров PHP
Данный язык программирования в большинстве случаев применяется в рамках разработки динамических сайтов. Настройка языка производится в файле php.ini, однако через .htaccess PHP также может быть настроен в качестве отдельного модуля. Последний способ удобен, так как управление конфигурацией осуществляется в одном файле.
- Ограничение доступа к ресурсу
Как уже упоминалось, документ позволяет закрыть доступ к сайту с определенных IP-адресов. Благодаря этому обеспечивается защита от возможных хакерских атак. Например, сервер становится уязвимым при DdoS-атаках, когда процессор не в состоянии обработать огромное число запросов, поступающих с одного или нескольких IP.
- Ограничение доступа для поисковых роботов
Поисковые боты индексируют сайты, собирая необходимую для этого информацию. В итоге индексируемые ресурсы появляются в поиске. Но существуют также нежелательные роботы (например, SolomonoBot). С помощью файла .htaccess сайт можно закрыть для определенных ботов, указанных по User-Agent.
Пошаговая инструкция создания файла .htaccess
При разработке сайта средствами CMS данный файл создается автоматически. Он расположен в корневом каталоге, доступ к нему можно получить через панель управления хостинг-провайдера. Обычно файл не содержит ничего кроме закомментированных строк.
Нужно иметь в виду, что панель управления cPanel по умолчанию скрывает все файлы с точкой спереди, включая .htaccess. Их отображение нужно включить, следуя инструкции.
на обучение «Разработчик» до 22 декабря
Если сайт создается вручную, этот файл, как и любой другой, можно создать самостоятельно на компьютере, а после загрузить на хостинг. В среде Windows это делается крайне просто:
- Нужно открыть любой простейший текстовый редактор (например, Блокнот).
- Далее пустой файл следует сохранить путем нажатия комбинации Ctrl + Shift + S или выбора пункта «Сохранить как…» в меню «Файл».
- В соответствующее поле вписывается имя .htaccess, файл сохраняется. Перед этим нужно включить отображение всех файлов в поле «Тип файла».
Готовый .htaccess без расширения txt загружается на хостинг в корневой каталог сайта. В панели управления провайдера для этого нужно проделать следующее:
- В подразделе «www» раздела «Менеджер файлов» выбирается зарегистрированный домен.
- Открывается окно загрузки путем нажатия на кнопку «Загрузить», расположенную сверху на панели иконок.
- В окне выбирается недавно созданный файл и загружается нажатием на кнопку ОК.
Синтаксис .htaccess
Встроенный язык настроек весьма прост. Каждая команда должна занимать отдельную строку. Комментарии обозначаются спереди символом #. Они помогают другим разработчикам и SEO-оптимизаторам понять смысл той или иной директивы. Все, что находится правее «решетки», игнорируется сервером и не воспринимается как команда.
Чтобы включить .htaccess, достаточно сохранить его на сервере. Все содержащиеся в файле команды сразу начнут выполняться.
Сам синтаксис директив построен на регулярных выражениях, использующих специальные символы и переменные. Полный их список представлен в официальной документации. Здесь же приведем базовые символы:
- ^ — начало строки;
- $ — конец строки;
- . — любой символ, за исключением $;
- — любое количество символов;
- ? — один определенный символ;
- [0-9] — любая цифра;
- [a-z] — любая буква латиницы;
- | — оператор «или» для выбора одной группы из двух;
- () — оператор группировки символов.
Перечислим базовые переменные:
- %{HTTP_USER_AGENT} — сведения об используемом браузере и операционной системе (передается значение из поля User-agent браузера);
- %{REMOTE_ADDR} — IP-адрес пользователя;
- %{REQUEST_URI} — запрашиваемый идентификатор URI;
- %{QUERY_STRING} — параметры запроса после символа «?».
Работа с .htaccess
Выше мы описали операции создания файла и загрузки его на хостинг. Далее разберем, как сделать .htaccess работоспособным, используя перечисленные параметры конфигурирования.
Итак, в файле .htaccess настройка сайта ведется указанием команд, включающих в себя буквы латинского алфавита и спецсимволы. Каждая директива имеет неизменяемую часть (ключ) и переменную (значение). Команда, переназначающая главную страницу, выглядит так:
- DirectoryIndex index.php
Добавить любую команду в конфигурационный файл очень просто. Для этого нужно:
- открыть существующий файл в корневом каталоге (или создать в нужном подкаталоге новый, чтобы действие директивы распространялось только на содержимое этой папки);
- скопировать требуемую команду из источника и добавить ее в конфигурацию;
- в самой директиве поменять параметры сайта на актуальные (доменное имя, страницу и т. д.);
- закрыть файл, сохранив предварительно изменения.
В процессе редактирования нужно внимательно вставлять и исправлять команды. Некорректная их работа может привести к сбою функционирования всего сайта.
Далее покажем примеры наиболее часто применяемых операций с использованием данного конфигурационного файла.
Ограничение доступа к сайту, конкретному каталогу или отдельному файлу
Во время технических работ сайт может работать нестабильно. С помощью директив .htaccess доступ к такому ресурсу или отдельным его составляющим на время можно ограничить.
- Закрытие всего сайта осуществляется добавлением следующих строк:
Order Deny,Allow
Deny from all
- Закрытие конкретной папки производится созданием отдельного файла внутри нее и добавлением в этот файл тех же строк.
- Можно закрыть доступ для всех пользователей за исключением одного или нескольких указанных IP-адресов:
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
В данном случае на пользователей с адресом 123.123.123.123 запрет не распространяется.
- Для закрытия доступа к какому-то файлу нужно создать отдельный .htaccessв каталоге, где расположен данный файл, и добавить следующий код:
<Files example.exe>
Order Deny.Allow
Deny from all
</Files>
Здесь доступ закрывается конкретно для файла example.exe.
Ограничение для файлов определенного типа
С помощью .htaccess запрет доступа можно наложить на несколько файлов одного типа. Как вариант, потребуется добавить отдельную директиву для каждого файла, что усложняет обработку параметров сервером. Вследствие этого тратятся и дополнительные ресурсы. Проще в таком случае ограничить доступ ко всем файлам с одинаковым расширением.
Это делается добавлением конфигурации такого формата:
<Files «\.(txt|pdf|jpg)$»>
Order Deny.Allow
Deny from all
</Files>
В показанном примере доступ запрещен для файлов с расширениями txt, pdf и jpg.
Запрет просмотра каталогов
Опытные пользователи могут просматривать структуру каталогов сайта. Как правило, директории при этом отображаются в виде списка. Для запрета данной операции достаточно добавить в конфигурацию следующую строку:
Options -Indexes
Если же необходимо, напротив, разрешить листинг, команда будет выглядеть так:
Options +Indexes
Настройка в .htaccess переадресации с кодом 301
Чаще всего пользователи перенаправляются с одного домена на другой. Необходимость в этом возникает, например, при переезде сайта на другое доменное имя вследствие ребрендинга или иных причин. Выполняется переадресация также командами .htaccess. Редирект на https с http производится аналогичным образом.
В качестве примера приведем наиболее часто применяемую конструкцию. Итак, для редиректа страницы .htaccess должен содержать следующие строки:
RewriteEngine On
RewriteCond %{HTTP_HOST} site1.ru
RewriteRule (.*) http://site2.ru/$1 [R=301,L]
Здесь пользователь перенаправляется с исходного домена site1.ru на целевой site2.ru.
Обработка ошибок
Страницы ошибок в .htaccess, а также коды этих ошибок указываются директивой ErrorDocument. Формат следующий:
ErrorDocument 404
http://site.ru/error/404.html
Читайте также!
Здесь:
- ru — доменное имя сайта;
- error — каталог, содержащий страницу ошибки (при наличии таковой);
- html — имя страницы ошибки.
Иногда пользователи сталкиваются с появлением ошибки 404 на сайте, если отсутствует файл .htaccess. WordPress, OpenCart и подобные движки, на основе которых разрабатывался ресурс, приводят именно к таким последствиям. При этом открываться может лишь главная страница, остальные же будут недоступны. Если подобная проблема возникает, прежде всего нужно убедиться в наличии конфигурационного файла, затем проверить корректность его названия.
При необходимости данный файл создается заново и заполняется стандартным содержимым для соответствующего движка. Брать код для добавления следует из источников, заслуживающих доверия.
Хотите получить одну из самых востребованных профессий в 2023 году? Станьте веб-разработчиком! Всего за 9 месяцев обучения вы познакомитесь с веб-технологиями, изучите популярные языки программирования и сможете самостоятельно создавать адаптивные сайты и интерактивные веб-приложения. Не упустите возможность стать специалистом одной из самых высокооплачиваемых и актуальных направлений. Присоединяйтесь к нам уже сейчас!