В статье мы расскажем о том, как настроить запрет доступа по IP-адресу через файл .htaccess.
- Как работает файл .htaccess
- Какой синтаксис имеет директива
- Зачем нужно ограничение доступа к файлам сайта
- Как запретить доступ к сайту
.htaccess — это служебный файл, который позволяет управлять настройками сайта и его подпапками. Регулировать настройки необходимо с помощью директив — правил с определенным синтаксисом.
Как работает файл .htaccess
На работу .htaccess влияет веб-сервер Apache. Как происходит взаимодействие с веб-сервером при наличии этого файла:
- Клиент запрашивает страницу у веб-сервера по протоколу HTTP или HTTPS.
- Apache проверяет наличие .htaccess в директории запрашиваемой страницы.
- Когда файл найден, веб-сервер проверяет наличие директив в файле.
- Если директивы прописаны, Apache применяет их к странице.
Далее мы расскажем о синтаксисе директивы для .htaccess.
Какой синтаксис имеет директива
Директива — это правило, которое задает условие доступа к странице в файле .htaccess. Оно состоит из трех частей.
Определяющая конструкция, которую указывают в начале правила. Конструкции делятся на две группы:
- order deny,allow — доступ к сайту запрещен со всех IP-адресов, кроме перечисленных;
- order allow,deny — доступ к сайту разрешен со всех IP-адресов, кроме перечисленных.
Действие, которое нужно указать на следующей строке после конструкции. Оно позволяет разрешить или запретить посещения:
- deny from — “запретить с”,
- allow from — “разрешить с”.
IP-адрес, к которому нужно применить действие. Можно указать не только конкретный адрес, но и диапазон адресов. Если действие должно применяться ко всем IP, используется параметр all. Например, так выглядит блокировка доступа для диапазона адресов:
deny from 123.123.123.
Зачем нужно ограничение доступа к файлам сайта
Блокировка по IP может потребоваться в разных случаях. Наиболее частые причины:
- Защита админки от третьих лиц. Этот вариант используется, если сайт создан на базе CMS (например, WordPress или Joomla).
- Снижение нагрузки на сайт. В этом случае можно заблокировать IP-адреса, с которых поступает аномальное число обращений.
- Технические работы. В этом случае доступ может быть запрещен как ко всему сайту, так и к отдельным страницам.
- Ограничение доступа для определенного пользователя. Этот вариант работает только в случае, когда пользователь подключается к интернету со статического IP: блокировка доступа накладывается на определенный адрес.
- Запрет входа на сайт из определенного региона. IP-адрес, который присваивается устройству при выходе в интернет, содержит информацию о регионе подключения. При запрете доступа к папке через htaccess используется диапазон адресов определенного региона: города или страны.
Как запретить доступ к сайту
Чтобы запретить доступ к папке сайта, нужно изменить права файла htaccess с 400 на 644. Для этого:
- Перейдите в панель управления.
- Разверните блок Хостинг и выберите Сайты:
- Справа от имени сайта нажмите Открыть папку:
- Кликните правой кнопкой мыши по файлу .htaccess и выберите Изменить права доступа:
- Укажите права 644 и нажмите Применить:
Как заблокировать доступ ко всему сайту
- Перейдите в панель управления.
- Войдите в корневую директорию сайта.
- Откройте файл htaccess и добавьте следующие строки:
deny from all
Как запретить доступ к директории
- Перейдите в панель управления.
- Откройте htaccess в той поддиректории, к которой нужно запретить доступ.
- Добавьте строки:
deny from all
Как заблокировать доступ к сайту для определенного IP
- Перейдите в панель управления.
- Откройте .htaccess в корневой папке того сайта, к которому нужно запретить доступ по айпи.
- Добавьте строки:
allow from all
deny from 123.123.123.123
Вместо 123.123.123.123 укажите адрес, для которого нужно закрыть доступ.
Если вы хотите закрыть доступ для нескольких IP-адресов, добавьте их через пробел
allow from all
deny from 123.123.123.123 321.321.321.321
Вместо 123.123.123.123 и 321.321.321.321 укажите IP-адреса, для которых нужно заблокировать доступ через htaccess.
Как заблокировать доступ для всех IP, кроме одного
- Перейдите в панель управления.
- Откройте .htaccess в корневой папке того сайта, к которому нужно ограничить доступ.
- Добавьте строки:
deny from all
allow from 123.123.123.123
Вместо 123.123.123.123 укажите адрес, которому нужно разрешить доступ.
Если вы хотите разрешить доступ нескольким IP, добавьте их через пробел:
deny from all allow from 123.123.123.123 321.321.321.321
Вместо 123.123.123.123 и 321.321.321.321 укажите IP-адреса, которым нужно нужно разрешить доступ к сайту.
После того как вы запретили доступ к сайту или странице, рекомендуем изменить права на .htaccess обратно на 400: так вы обезопасите свой служебный файл от нежелательных изменений. Это можно сделать по инструкции Как запретить доступ к сайту.