PHP-код, чтобы исключить Google - PullRequest
2 голосов
/ 23 ноября 2011

У меня есть сайт объявлений.На этом веб-сайте я храню в базе данных каждую страницу продукта, которую пользователь посещает для целей истории, чтобы он мог просматривать последние посещенные им продукты.

Проблема заключается в том, что когда googlebot и другие пользователи заходят на мой сайт, база данныхзаполняется тысячами записей, потому что тысячи страниц продукта посещаются Google.

Я пробовал различные функции с $_SERVER['HTTP_USER_AGENT'], чтобы попытаться выяснить, является ли текущий пользователь googlebot или нет, и если это так, то не болитпросмотры страниц в БД, так что они не содержат нежелательных результатов, но, похоже, ни один из них не работает, так как я получаю IP-адреса Google и узнаю их в моей БД.

Кто-нибудь из вас знает, какphp, чтобы гарантировать, что Google остается вне?

Ответы [ 4 ]

1 голос
/ 23 ноября 2011

Думал ли ты о других роботах, пауках и автоматических скриптах, бродящих по сети? Они также будут заполнять вашу базу данных. И это адски узнать обо всех этих UserAgents, IP-адресах и других характеристиках. Может быть, лучше просто ограничить историю, скажем, 25 записями.

Итак, мой ответ: ограничьте записи вашей истории. Db или сохраните историю в файле cookie в клиенте для посетителей.

1 голос
/ 23 ноября 2011

Вы можете использовать следующий фрагмент кода, который должен обнаруживать GoogleBot, а не сохранять его в базе данных.

if (!strpos($_SERVER['HTTP_USER_AGENT'],"Googlebot")) {
     // log to database
}
1 голос
/ 23 ноября 2011

Почему в мире вы хотите, чтобы только Google не пускали? Другие поисковые системы могут также проиндексировать ваш сайт. А как насчет Бинга, Yahoo, Altavista и других?

Вы можете использовать robots.txt, чтобы запретить любому сканеру индексировать ваш сайт.

Создайте robots.txt в своем корне и вставьте в него следующее:

User-agent: *
Disallow: /

Если вы хотите разрешить сканеры на некоторых страницах, вы можете установить мета вместо

<meta name="robots" content="noindex, nofollow" />

Не все боты "хороши" и уважайте эти теги.

0 голосов
/ 23 ноября 2011
<?php echo $_SERVER['REMOTE_ADDR'];?> 

даст вам адрес клиента.Затем вы устанавливаете переменную сеанса, которая будет хранить или отбрасывать страницы на основе вашей логики, проверяя ip.

@ Ответ Яна - лучший способ.Хотя это отрежет всех роботов.

...