Файл .HTACCESS: пропускной пункт вашего сайта

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

guards

Что такое файл .htaccess и как его создать?

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

Правила, указанные в файле .htaccess, распространяются на ту директорию (папку), в которой он находится, а также на все вложенные директории. Распространяются эти правила в том числе и на поддомены, поскольку директории поддоменов являются поддиректориями основного сайта.

Возможно, на вашем сайте уже есть файл .htaccess. Тогда создавать его повторно не нужно, достаточно дописать новые правила в конец существующего файла. Если такого файла нет, создайте его. Для этого в файловом менеджере (пункт «Файлы» в верхнем меню панели управления), находясь в нужной папке, нажмите «Создать» — «Файл», в качестве имени файла укажите: .htaccess (точка в начале обязательна). Готово. Осталось наполнить его нужными правилами.

Разрешить доступ только с определеных IP

Если ваш сайт или какая-то его часть не предназначены широкому кругу лиц, вы можете ограничить к ним доступ по IP-адресу. Например, если к странице входа в административную часть вашего сайта наблюдаются подозрительные запросы, похожие на попытку взлома, такое ограничение может быть полезно. C сайтами на WordPress такое случается достаточно регулярно. В этом случае мы обычно рекомендуем заблокировать доступ к административному разделу со всех IP-адресов, кроме вашего собственного (как это сделать, мы разберем ниже).

guard1

Если вы хотите закрыть доступ к сайту целиком, добавьте в ваш файл .htaccess следующие правила:

Order deny,allow
Deny from all
Allow from *.*.*.*

Первая строчка в этой директиве задает порядок действий: сначала запретить, затем разрешить. Вторая строчка запрещает доступ всем (поскольку таков порядок, указанный в первой строчке). Третья строчка разрешает доступ только определенному IP-адресу. Так что вместо *.*.*.* подставьте разрешенный IP-адрес.

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

Например, если IP-адресов несколько:

Allow from *.*.*.*
Allow from *.*.*.*

Если адреса относятся к одной подсети, то задайте подсеть, для этого вместо цифр после последней точки укажите диапазон: 0/*, например:

Allow from *.*.*.0/12

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

Allow from *.*.*.0/12
Allow from *.*.*.0/12

Если Вы хотите запретить доступ не ко всему сайту, а только к части сайта, то файл .htaccess следует создавать именно в той папке, доступ к которой вы хотите ограничить.  Например, если вы хотите защитить административную часть сайта на WordPress, то файл .htaccess следует создавать именно в директории wp-admin. В строчке Allow from *.*.*.* следует указать ваш собственный IP-адрес.

Как узнать свой IP, подсеть?

Для определения Вашего IP воспользуйтесь сервисами для определения IP:

Inet.from.sh

Yandex.ru/internet

Для уточнения подсети можно использовать следующий сервис: ip-calculator.ru.

Если вы затрудняетесь определить нужную маску подсети самостоятельно, обратитесь в службу поддержки.

Запретить доступ определенным IP-адресам

Иногда бывает необходимо запретить доступ только определенным IP-адресам. Такая необходимость может возникнуть, например, если обращения к вашему сайту с одного конкретного IP-адреса носят массовый характер и затрудняют работу сайта, создавая повышенную нагрузку.

guard2-2

Чтобы установить запрет на доступ к вашему сайту с определенных IP-адресов, добавьте в файл .htaccess следующий текст:

Order allow,deny
Allow from all
Deny from *.*.*.*

Вместо *.*.*.* подставьте нужный IP-адрес. В описанном случае с массовыми обращениями определить IP-адрес «виновника» поможет служба поддержки хостинга.

Здесь, как вы видите, порядок обратный: сначала мы разрешаем доступ всем, затем ограничиваем определенным IP-адресам. Точно так же, как в предыдущем примере, вы можете указать несколько IP-адресов (каждый с отдельной строчки), целую подсеть или несколько подсетей. Каждый IP-адрес или подсеть пишутся с новой строчки.

Установить пароль доступа к папке или поддомену

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

guard3

Установить пароль на папку вы можете прямо из Панели управления. Для достаточно кликнуть по полю с нужной папкой и выбрать функцию «Защита паролем», а затем задать пароль.

passw

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

Как вы помните, директивы из файла .htaccess распространяются только на папку, в которой находится этот файл и вложенные в нее папки (за одним исключением, которое мы сейчас не будем рассматривать). Поэтому, чтобы установить пароль на конкретную папку, создайте прямо в ней файл .htaccess со следующими директивами (а если такой файл в ней уже есть, то просто допишите в конец файла):


AuthName "your_text"
AuthType Basic
Require valid-user
AuthUserFile "полный_путь_к _файлу_.htpasswd"

В первой строке (AuthName) вместо "your_text" укажите любое сообщение, которое будет отображаться при попытке обращения к защищенной директории. Например: "Private zone" или "Administrators Only", или что-то еще на ваше усмотрение. Важно! Значение текста в поле AuthName не должно содержать кириллицы и специальных символов.

Строчка Require valid-user означает, что имя пользователя может быть любым. Мы рекомендуем это так и оставить. Но вы при желании можете указать список имен пользователей, которым разрешен вход. Для этого в данной строчке после Require следует через запятую указать разрешенные имена. Valid-user в этом случае не дописываем.

В последней строке AuthUserFile необходимо указать полный путь к файлу, содержащему логин и пароль доступа в зашифрованном виде. Предварительно такой файл необходимо создать и загрузить на сайт.

Для этого создайте в файловом менеджере новый файл и назовите его .htpasswd (точка в названии также обязательна). Файл следует создавать в папке того домена, для которого вы задаете пароль (в корневой папке найдите папку domains и в ней нужный домен).

Для генерации логина и пароля в зашифрованном виде используйте либо утилиту консоли .htpasswd (этот способ больше подойдет специалисту), либо сторонние сервисы с аналогичными функциями, например, вот этот: Htpasswd-generator. Последнее совсем просто: задайте пароль и логин — и получите зашифрованную строчку. Эту строчку следует скопировать и вставить в ваш файл с именем  .htpasswd.

Вернемся к оформлению директивы. Путь к файлу .htpasswd указывается в полном формате: /home/login/domains/domain.ru/.htpasswd

Пример правильно оформленной директивы:

AuthName "Private zone!"
AuthType Basic
Require valid-user
AuthUserFile /home/a0000001/domains/mydomain/.htpasswd

Если вы войдете во вкус, то больше информации о настройках .htaccess вы найдете на нашем сайте. А для еще более искушенных пользователей — интересно о более тонких настройках .htaccess можно узнать из этой статьи. Напоминаем также, что с недавних пор вы самостоятельно и легко можете ограничивать доступ к вашим FTP-аккаунтам по IP-адресу прямо из Панели управления!

Желаем вам удачных экспериментов и приятной работы!

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