Начал собирать простенькую статистику на сайте. Решил в том числе отслеживать на какой странице именно находится пользователь (по какому запросу пришел). Для этой цели использую $_SERVER['REQUEST_URI']. В итоге получаю такие варианты:
/about или /support - ок, это и ожидалось
http://www.bing.com или www.baidu.com:443 - WTF?
Откуда берутся эти адреса сторонних сайтов в запросе?
И как получить корректный адрес, по которому перешел ко мне пользователь или робот.
Что такое $_SERVER['REQUEST_URI']?
Это адрес который был передан для того, чтобы получить доступ к странице с которой пришел запрос.
Для отсеивания роботов я бы рекомендовал передавать через ajax какую нибудь переменную т.к. большинство роботов не запускают джаваскрипт на сайте. Можно сгенерировать токен пользователя на стороне PHP (предварительно собрав нужную информацию о пользователе из массива $_SERVER['...']) и затем запускать скрипт который в фоновом режиме передает на сервер что "на сайте не робот".
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости