В соответствии с этот «Под маскировкой понимается практика представления различного контента или URL-адресов пользователям и поисковым системам». Та же ссылка дает пример как:
Serving a page of HTML text to search engines, while showing a page of images or Flash to users
Вопрос: Если я правильно интерпретировал, должен существовать механизм для идентификации сущности, будь то поисковая система или браузер (пользователь) на веб-сервере. Как мы называем такой механизм? Или это просто PHP или JavaScript-код, который перенаправляет? Откуда веб-сервер на самом деле знает, что сущность ‘X’ поисковая система и сущность Y ‘является веб-браузером?
Пользовательский агент — это хороший способ идентифицировать клиента.
Это строка агента пользователя, переданная на сервер по запросу из браузера:
«Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 57.0.2987.133 Safari / 537.36»
Из Google:
Mozilla / 5.0 (совместимо; Googlebot / 2.1; +http://www.google.com/bot.html)
Из Бинга:
Mozilla / 5.0 (совместимо; bingbot / 2.0; +http://www.bing.com/bingbot.htm)
Чтобы использовать их с PHP, вы можете сделать что-то вроде этого:
if (strpos($_SERVER['HTTP_USER_AGENT'],'bot') !== false) {
// This is probably a bot
}
Если вы хотите быть немного более точным, вы можете также проверить ссылку, например:
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($userAgent,'bot') !== false && strpos($userAgent,'http') !== false) {
// It is probably a bot
}
Этот вопрос и ответы показывают, как использовать Apache для доставки различного контента на основе пользовательского агента: Правило перезаписи для пользовательского агента с mod_rewrite
Других решений пока нет …