Раздел помощи SpaceWeb

Как запретить доступ к сайту через файл .htaccess

13 дек, 2023

В статье мы расскажем о том, как настроить запрет доступа по IP-адресу через файл .htaccess.

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

Как работает файл .htaccess

На работу .htaccess влияет веб-сервер Apache. Как происходит взаимодействие с веб-сервером при наличии этого файла:

  1. Клиент запрашивает страницу у веб-сервера по протоколу HTTP или HTTPS.
  2. Apache проверяет наличие .htaccess в директории запрашиваемой страницы.
  3. Когда файл найден, веб-сервер проверяет наличие директив в файле.
  4. Если директивы прописаны, Apache применяет их к странице.

Далее мы расскажем о синтаксисе директивы для .htaccess.

Какой синтаксис имеет директива

Директива — это правило, которое задает условие доступа к странице в файле .htaccess. Оно состоит из трех частей.

Определяющая конструкция, которую указывают в начале правила. Конструкции делятся на две группы:

  • order deny,allow — доступ к сайту запрещен со всех IP-адресов, кроме перечисленных;
  • order allow,deny — доступ к сайту разрешен со всех IP-адресов, кроме перечисленных.

Действие, которое нужно указать на следующей строке после конструкции. Оно позволяет разрешить или запретить посещения:

  • deny from — “запретить с”,
  • allow from — “разрешить с”.

IP-адрес, к которому нужно применить действие. Можно указать не только конкретный адрес, но и диапазон адресов. Если действие должно применяться ко всем IP, используется параметр all. Например, так выглядит блокировка доступа для диапазона адресов:

order allow,deny
deny from 123.123.123.

Зачем нужно ограничение доступа к файлам сайта

Блокировка по IP может потребоваться в разных случаях. Наиболее частые причины:

  • Защита админки от третьих лиц. Этот вариант используется, если сайт создан на базе CMS (например, WordPress или Joomla).
  • Снижение нагрузки на сайт. В этом случае можно заблокировать IP-адреса, с которых поступает аномальное число обращений.
  • Технические работы. В этом случае доступ может быть запрещен как ко всему сайту, так и к отдельным страницам.
  • Ограничение доступа для определенного пользователя. Этот вариант работает только в случае, когда пользователь подключается к интернету со статического IP: блокировка доступа накладывается на определенный адрес.
  • Запрет входа на сайт из определенного региона. IP-адрес, который присваивается устройству при выходе в интернет, содержит информацию о регионе подключения. При запрете доступа к папке через htaccess используется диапазон адресов определенного региона: города или страны.

Как запретить доступ к сайту

Чтобы запретить доступ к папке сайта, нужно изменить права файла htaccess с 400 на 644. Для этого:

  1. Перейдите в панель управления.
  2. Разверните блок Хостинг и выберите Сайты:

  1. Справа от имени сайта нажмите Открыть папку:

  1. Кликните правой кнопкой мыши по файлу .htaccess и выберите Изменить права доступа:

  1. Укажите права 644 и нажмите Применить:



Как заблокировать доступ ко всему сайту

  1. Перейдите в панель управления.
  2. Войдите в корневую директорию сайта.
  3. Откройте файл htaccess и добавьте следующие строки:
order deny,allow
deny from all

Как запретить доступ к директории

  1. Перейдите в панель управления.
  2. Откройте htaccess в той поддиректории, к которой нужно запретить доступ.
  3. Добавьте строки:
order deny,allow
deny from all

Как заблокировать доступ к сайту для определенного IP

  1. Перейдите в панель управления.
  2. Откройте .htaccess в корневой папке того сайта, к которому нужно запретить доступ по айпи.
  3. Добавьте строки:
order allow,deny
allow from all
deny from 123.123.123.123

Вместо 123.123.123.123 укажите адрес, для которого нужно закрыть доступ.
Если вы хотите закрыть доступ для нескольких IP-адресов, добавьте их через пробел

order allow,deny
allow from all
deny from 123.123.123.123 321.321.321.321

Вместо 123.123.123.123 и 321.321.321.321 укажите IP-адреса, для которых нужно заблокировать доступ через htaccess.

Как заблокировать доступ для всех IP, кроме одного

  1. Перейдите в панель управления.
  2. Откройте .htaccess в корневой папке того сайта, к которому нужно ограничить доступ.
  3. Добавьте строки:
order deny,allow
deny from all
allow from 123.123.123.123

Вместо 123.123.123.123 укажите адрес, которому нужно разрешить доступ.
Если вы хотите разрешить доступ нескольким IP, добавьте их через пробел:

order deny,allow
deny from all allow from 123.123.123.123 321.321.321.321

Вместо 123.123.123.123 и 321.321.321.321 укажите IP-адреса, которым нужно нужно разрешить доступ к сайту.

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