Как заблокировать доступ к сайту по IP адресу
(забанить по IP адресу)
Вебмастеру иногда бывает просто необходимо заблокировать (забанить) доступ с какого-нибудь IP адреса к своему сайту. Причины такой блокировки могут быть совершенно разнообразные: либо это может быть спам-бот, просто неугодный пользователь, или необходимо ограничить доступ к сайту некоторым странам (городам, подсетям).
Наиболее простым и эффективным способом заблокировать (забанить) доступ к сайту по IP является использование файла .htaccess.
Для этого необходимо в корневой папке Вашего сайта создать файл .htaccess (именно с названием .htaccess, а не с расширением) и прописать в нем следующие строки:
<Limit GET POST>
order allow,deny
deny from 195.138.87.95
allow from all
</Limit>
Все, теперь для пользователя с IP адресом 195.138.87.95 Ваш сайт не существует!
После строчки deny from 195.138.87.95 можно добавлять другие строки с другими IP адресами, например: deny from 195.138.87. - так можно забанить сразу целую подсеть, IP адреса которой начинаются с 195.138.87.
Чтобы забанить несколько IP адресов, просто добавьте необходимое количество строк, начинающихся с deny from. В результате у Вас получится что-то вроде этого:
<Limit GET POST>
order allow,deny
deny from 195.138.87.95
deny from 195.138.86.
deny from 111.111.222.233
allow from all
</Limit>
Надеюсь, данный пример Вам еще не раз пригодится в борьбе с неугодными IP адресами, ботами и спамерами!
Перед публикацией все комментарии проходят обязательную модерацию!
Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Строчки с другими адресами добавлять через запятую?
Для каждого IP используйте новую строку.
Например:
deny from 201.201.88.88
deny from 88.88.202.202
Спасибо за Ваш вопрос, статью немного обновил.
<Limit GET POST>
order allow,deny
allow from all
deny from 111.111.222.233
deny from 195.138.
</Limit>
Техподдержка забанила мне пару наглых IP просто одной строчкой через интервал даже без запятой, я добавила еще четыре IP также просто с интервалом между адресами.
Потом прочитала в статье, что deni from один раз и потом IP надо через запятую. Ну добавила запятые. Все работает, заблокированные не появляются пока.
У вас после deni from только один адрес.
Интересно, все-таки как правильно или все варианты правильные?
deny from 80.239.242.
deny from 80.239.243.
Правильно?
deny from 80.239.242, 80.239.243
Например, с 203.121.99.99 по 203.121.69.170.
Хочу просто заблокировать переходы оттуда. Это возможно?
SetEnvIfNoCase Referer "semalt.com" bad_bot
<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>
Этот код работает! Но, а если мне нужно два сайта запретить? Я пробовала вот так:
SetEnvIfNoCase Referer "первый сайт" bad_bot
SetEnvIfNoCase Referer "второй сайт" bad_bot
<Limit GET POST HEAD>
Order Allow,Deny
Allow from all
Deny from env=bad_bot
</Limit>
Но, так не вышло... Как правильно? Спасибо большое за вашу статью!
Вот этот код не срабатывает теперь SetEnvIfNoCase Referer "href.li" bad_bot
Обход этого метода придумали? Кэш чистила в этот раз.
Спасибо за помощь.
Options All -Indexes
<Limit GET POST>
Order allow, deny
Allow from all
deny from 95.24.223.0/24
deny from 95.24.0.0/14
deny from 95.28.0.0/16
</Limit>
Попробуйте поместить файл .htaccess в корневую папку сайта.
order deny,allow
deny from all
allow from 192.111.222.195 192.111.222.196
Для вложенных директорий настройки будут определяться только тем файлом .htaccess, который находится в этой директории!
Открыла настройки, но нигде не могла создать новый файл.
189.5.122.75 - - [26/Oct/2017:15:00:58 +0300] "GET / HTTP/1.1" 403 692 "-" "-"
187.65.153.116 - - [26/Oct/2017:15:00:58 +0300] "GET / HTTP/1.1" 403 692 "-" "-"
179.233.201.156 - - [26/Oct/2017:15:00:58 +0300] "GET / HTTP/1.1" 403 692 "-" "-"
Как забанить это все?
<Limit GET POST>
order allow,deny
allow from 000.000.00.00
deny from all
</Limit>