Керування файлами cookie, які використовуються для реклами, таких як персоналізація реклами, ремаркетинг і аналіз ефективності реклами.
|
tgr_85
05.01.2021 12:20
0
|
Здравствуйте.
Ситуация такая: есть сайт, который отправляет свои новости через rss в агрегаторы (Яндекс.Новости и т.д.). Но помимо бота Яндекса по этим url ходят и другие плохие боты плохих людей, которые полностью копируют статьи и растаскивают по своим сайтам. Я пробовал банить IP ботов, но их меняют, и все повторяется заново. Я хочу дать доступ к url rss своего сайта только ботам Яндекса, а остальным закрыть. А в идеале - дать доступ ботам Яндекса, а всем остальным отдать 301 редирект на другой url (готов заморочиться и специально для них отдавать rss какого-нибудь порнохаба и т.п.). Итого, я хочу: Открыть ботам Яндекса путь к site.com/rss-yandex Боты Яндекса выглядят в логах так: GET /rss-yandex HTTP/1.0" 200 22560 "-" "Mozilla/5.0 (compatible; YandexNews/4.0; +yandex.com/bots) GET /rss-yandex HTTP/1.0" 200 22560 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +yandex.com/bots) IP у них разные и много. Всем остальным - закрыть, или отдать 301 на site.com/rss-gadosti Подскажите, пожалуйста, с синтаксисом .htaccess |
|
rudenko
05.01.2021 12:35
1
|
Дело в том, что поле referrer легко подделывается, поэтому самым правильным решением будет ограничить доступ по IP. Но если нужно ограничить по Referrer, то код будет приблизительно таким:
if (!isset($_SERVER['HTTP_REFERER']) || !preg_match('/(?:YandexBot|YandexNews)/', $_SERVER['HTTP_REFERER'])) { header("Location: адрес_куда_идти_посторонним"); exit; } |
|
tgr_85
05.01.2021 12:54
0
|
Супер, спасибо.
Только я так понял, что этот код ограничит доступ ко всему сайту. А как ограничить доступ только к странице site.com/rss-yandex ? |
|
rudenko
06.01.2021 00:07
1
|
Необходимо найти часть кода, которая формирует RSS и там его вставить. У каждого сайта и CMS это выполняется в определенном месте, каком именно подсказать не могу.
|
|
tgr_85
06.01.2021 10:01
0
|
Спасибо, попробую
|
Тема закрита.