Как ограничить доступ к сайту по IP-адресу с помощью .htaccess

Опубликовано 11 лет назад

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

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

В корневой файл .htaccess нужно добавить буквально несколько строчек:

order allow,deny
allow from all
deny from 50.31.96.11

Order allow,deny — запускает функцию разграничения доступа к сайту, allow — разрешает доступ, deny — запрещает доступ. Приоритет имеет функция находящаяся выше. Т.е в приведенном выше примере, у нас во второй строчке открывается полный доступ к сайту для всех, а в третьей строчке закрывается доступ для определенного IP-адреса.

Если вы хотите закрыть доступ для нескольких IP-адресов, их нужно все перечислить. Делается это следующим образом:

order allow,deny
allow from all
deny from 50.31.96.11
deny from 50.31.96.12
deny from 50.31.96.13
deny from 50.31.96.14

Кроме этого, вы можете заблокировать весь диапазон нежелательных IP-адресов. Например, вот так:

order allow,deny
allow from all
deny from 50.31.96.

Будьте осторожны при блокировке диапазона IP-адресов, т.к из-за одного нехорошего человека с динамическим IP, запросто можете закрыть доступ всей сети провайдера. С помощью .htaccess можно вообще сделать много чего интересного, но об этом позже.

Иван Данилин
Автор Иван Данилин

Фулстек веб‑разработчик, специализируюсь на платформе WordPress

Подробнее
Комментарии
  1. все работает а возможна перенаправить IP-адрес допустим
    чтобы не ошибка 400 или 500 а IP-адрес попал на нужную мне страницу например
    адрес фото
    • Попробуйте так

      RewriteEngine On
      RewriteCond %{REMOTE_ADDR} (X.X.X.X)
      RewriteRule .* http://ya.ru/ [R=301,L]


      X.X.X.X — IP адрес
Добавить комментарий