Что нового

Как запретить переходы с конкретных url?

souz

Посетитель
Регистрация
30 Окт 2024
Сообщения
27
Реакции
2
Как можно запретить переходы с конкретных url со сторонних сайтов?
Например, я перечислю несколько url или главный домен сайта с которого должны быть запрещены переходы на мой сайт.
 
ну один из вариантов в файле .htacess после RewriteEngine On прописать
Код:
RewriteCond %{HTTP_REFERER} ^https?://(www\.)?example\.com 
[NC]RewriteRule ^ - [F]
либо в файле main.php добавить код
Код:
// Список доменов, с которых запрещены переходы
$blocked_referers = [
    'example.com',
    'another-example.com'
];


$referer = isset($_SERVER['HTTP_REFERER']) ? parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) : '';


foreach ($blocked_referers as $blocked_referer) {
    if (strpos($referer, $blocked_referer) !== false) {
        // Перенаправляем пользователя на страницу с ошибкой или выполняем другое действие
        header('HTTP/1.0 403 Forbidden');
        echo 'Доступ запрещен.';
        exit;
    }
}
 
RewriteCond %{HTTP_REFERER} ^https?://(www\.)?имядомена\.ru [NC]RewriteRule ^ - [F]
Типа так? В таком случае у меня сразу ошибка сайта при заходе и вообще не открывается.

Internal Server Error​

The server encountered an internal error or misconfiguration and was unable to complete your request.

либо в файле main.php добавить код
В этом варианте ничего не происходит. Указал домен, всё равно с того домена можно перейти на мой сайт. Скорее всего там редирект 301 стоит. Его надо блокнуть как то.
 
не так сохранилось
Код:
RewriteCond %{HTTP_REFERER} ^https://(www\.)?example\.com [NC]
RewriteRule ^ - [F]
вот так надо чтобы [NC] было на верхней строке
 
  • Like
Реакции: souz
код php надо ставить перед
Код:
$home_url = clean_url($config['http_home_url']);
и обязательно чистить кеш движка.
 
  • Like
Реакции: souz
Верх