Posted 9 июляJul 9 comment_207553 {{if }} {{endif}} Как в шаблонных условиях прописать, узнать является текущий посетитель поисковым ботом или нет. Вроде в php есть функция useragent, по которой возможно узнать браузер и тп. И если в строчке присутствует 'bot'. То есть если есть вхождения, тогда в данный момент возможно узнать что текущую страницу подгрузил бот. Link to comment https://ipbmafia.ru/topic/27453-uslovie-pri-kotorom-uznaem-bot-ili-realnyj-posetitel/ Share on other sites Больше вариантов
9 июляJul 9 comment_207576 В режиме разработчика в плагинах создаем такой хук не шаблона (не помню как он называется) и выбираем там класс \IPS\core\modules\front\system\plugins В этом хуке создаем метод класса: public function isBot() { $userAgent = $_SERVER['HTTP_USER_AGENT']; $bots = [ 'Googlebot', 'Bingbot', 'Slurp', 'DuckDuckBot', 'Baiduspider', 'YandexBot', 'Sogou', 'Exabot', 'facebot', 'ia_archiver', 'Twitterbot', 'facebookexternalhit', // Добавьте другие строки, которые могут быть в юзер-агентах ботов ]; foreach ($bots as $bot) { if (stripos($userAgent, $bot) !== false) { return true; } } return false; } public function getBotName() { // добавьте тут вывод имени поискового бота по аналогии с методом выше return $bot; } В шаблоне: {{$plugins = new \IPS\core\modules\front\system\plugins;}} {{if ($plugins->isBot())}} <p>Это бот: {{$plugins->getBotName();}}</p> {{endif}} Link to comment https://ipbmafia.ru/topic/27453-uslovie-pri-kotorom-uznaem-bot-ili-realnyj-posetitel/?&do=findComment&comment=207576 Share on other sites Больше вариантов
9 июляJul 9 comment_207578 7 часов назад, Zuldek199 сказал: И если в строчке присутствует 'bot' а вот насчет этого хочу предупредить. Любой пользователь может писать в юзер агент все что угодно. В том числе html и js код. Поэтому не должно быть никаких проверок на bot и прочих универсальных решений. Все боты должны быть четко прописаны и все имена ботов для вывода на страницу должны быть храниться на сервере. Если найдено совпадение в юзерагенте - вывести имя бота из своего списка. Строки и подстроки из юзерагента выводить категорически запрещено. Даже если вы запретите спецсимволы чтобы предотвратить вывод кода, посетитель может засунуть туда просто 100500 символов и они отобразятся на странице. Link to comment https://ipbmafia.ru/topic/27453-uslovie-pri-kotorom-uznaem-bot-ili-realnyj-posetitel/?&do=findComment&comment=207578 Share on other sites Больше вариантов
10 июляJul 10 comment_207585 17 часов назад, Zuldek199 сказал: {{if }} {{endif}} Как в шаблонных условиях прописать, узнать является текущий посетитель поисковым ботом или нет. Вроде в php есть функция useragent, по которой возможно узнать браузер и тп. И если в строчке присутствует 'bot'. То есть если есть вхождения, тогда в данный момент возможно узнать что текущую страницу подгрузил бот. самый простой вариант методом ips {{if \IPS\Http\UserAgent::parse()->spider}} ты спидер {{endif}} но там мало ботов, для добавления регулярок нужно расширять $searchEngineUseragents в \IPS\Http\UserAgent Link to comment https://ipbmafia.ru/topic/27453-uslovie-pri-kotorom-uznaem-bot-ili-realnyj-posetitel/?&do=findComment&comment=207585 Share on other sites Больше вариантов
12 июляJul 12 comment_207847 c;loudflare Link to comment https://ipbmafia.ru/topic/27453-uslovie-pri-kotorom-uznaem-bot-ili-realnyj-posetitel/?&do=findComment&comment=207847 Share on other sites Больше вариантов
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.