Запрет доступа к сайту с определенного домена - как сделать?

12
Д
На сайте с 01.04.2012
Offline
133
#11
function StopDomain($domain)
{
$info = parse_url($domain);
$host = $info['host'];
$host_names = explode(".", $host);
$host_names = array_slice($host_names, -2, 2, true);
$dom = implode('.',$host_names);
// Список доменов не нужных
$RefererStop = array
(
'bad-domain.cn'=>'1',
'bad-domain2.cn'=>'1',
'bad-domain3.cn'=>'1',

);

return $RefererStop[$dom];

}

Использовать:

if(StopDomain($_SERVER['HTTP_REFERER'])=='1')

{

header('HTTP/1.1 404 Not Found');
die('Нужный текст');

}
VPN/SSD VPS в любой локации на выбор ( https://cp.inferno.name/cart.php ). Скидка 25% для новых заказов по промо-коду VESNA2024
AB
На сайте с 27.01.2016
Offline
90
#12
Для nginx в конфиге домена

if ( $http_referer ~* (^badsite.com) ){
return 403;
}

Где badsite.com блокируемый сайт.
ZEEW
На сайте с 03.06.2018
Offline
63
#13
DimMis #:

тоже мертвый вариант, не блочит

данный вариант должен работать. скорее всего, у вас конфликт с правилами выше (как у меня было). попробуйте добавить правило на самый верх

RewriteEngine On

RewriteCond %{HTTP_REFERER} site\.ru [NC]

RewriteRule .* – [F,L]

W1
На сайте с 22.01.2021
Offline
285
#14
ZEEW #:
скорее всего, у вас конфликт с правилами выше

Варианты могут быть разные, как-то:
- неверная последовательность правил
- неверное определение реферера
- неверная методика тестирования/проверки
- неверная постановка задачи (запрос вообще может полностью обрабатываться энджинксом и не доходить до апача)
...

Мой форум - https://webinfo.guru –Там я всегда на связи
sergv
На сайте с 13.04.2006
Offline
413
#15

Судя по тому, что на примере из гугла вместо домена он указывает http:// в .htaccess и не экранирует точки - скорее всего он и в приведенном в теме примере также пишет домен. Соответственно, у него и не работает.

ТС, показывай файл целиком, ибо гадание на кофейной гуще может затянуться на год )

https://REGHOME.ru - регистрация и продление доменов от 169₽ в российских и международных зонах по честным ценам без звездочек. (R01, WebNames, UK2). Принимаем Ю-Money, Visa, MasterCard, Мир
DimMis
На сайте с 11.01.2023
Offline
13
#16
webinfo #:

Других вариантов не будет. Разбирайтесь более тщательно со своим сайтом.

ЗЫ: Надеюсь, "baddomain" заменили на то, что требуется?

Ну... уж не совсем темный я))) а за общение большой спс)

DimMis
На сайте с 11.01.2023
Offline
13
#17
Всем кто помогал Спасибо...  проблему решил! - проблема была в  файле .htaccess
narolskay
На сайте с 21.11.2009
Offline
148
#18
ZEEW #:
данный вариант должен работать.

Подскажите, а, если есть несколько сайтов, которые нужно заблокировать, то каждый раз прописывать код и потом вставлять урл?

ZEEW
На сайте с 03.06.2018
Offline
63
#19
narolskay #:

Подскажите, а, если есть несколько сайтов, которые нужно заблокировать, то каждый раз прописывать код и потом вставлять урл?

Примерный код:

RewriteEngine On

RewriteCond %{HTTP_REFERER} site1\.ru [NC,OR]

RewriteCond %{HTTP_REFERER} site2\.ru [NC ,OR]

RewriteCond %{HTTP_REFERER} site3\.ru [NC]

RewriteRule .* – [F,L]

W1
На сайте с 22.01.2021
Offline
285
#20
ZEEW #:
Примерный код:

Не делается так для однотипных условий. Правильнее через  регулярку:

 site1\.ru|site2\.ru|site1\.com
12

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