Какой механизм скрыт?

В соответствии с этот «Под маскировкой понимается практика представления различного контента или URL-адресов пользователям и поисковым системам». Та же ссылка дает пример как:

Serving a page of HTML text to search engines, while showing a page of images or Flash to users

Вопрос: Если я правильно интерпретировал, должен существовать механизм для идентификации сущности, будь то поисковая система или браузер (пользователь) на веб-сервере. Как мы называем такой механизм? Или это просто PHP или JavaScript-код, который перенаправляет? Откуда веб-сервер на самом деле знает, что сущность ‘X’ поисковая система и сущность Y ‘является веб-браузером?

0

Решение

Пользовательский агент — это хороший способ идентифицировать клиента.

Это строка агента пользователя, переданная на сервер по запросу из браузера:

«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

1

Другие решения

Других решений пока нет …