PHP代码排除谷歌

时间:2011-11-23 14:20:57

标签: php googlebot

我有一个分类广告网站。在这个网站上,我存储在数据库中,用户访问的每个产品页面用于历史记录,因此他可以查看他访问过的最后产品。

问题在于,当googlebot和其他人进入我的网站时,数据库会填满成千上万的邮件,因为它会剔除Google访问的数千个产品页面。

我使用$_SERVER['HTTP_USER_AGENT']尝试了各种功能,试图找出当前用户是否是googlebot,如果是,请不要在数据库中查看页面浏览量,以免因垃圾邮件无法使用结果,但它们似乎都不起作用,因为我得到谷歌的IP并在我的数据库中识别它们。

你们中的任何一个人都知道在PHP中有一个好方法可以确保谷歌留在外面吗?

4 个答案:

答案 0 :(得分:1)

为什么世界上你想只保留谷歌?其他搜索引擎也可以为您的网站编制索引。 bing,yahoo,altavista和其他人怎么样?

您可以使用robots.txt禁止任何抓取工具为您的网站编制索引。

在根目录中创建robots.txt并将以下内容添加到其中:

User-agent: *
Disallow: /

如果您想在某个页面上允许抓取工具,则可以设置元

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

并非所有机器人都“很好”并尊重这些标签。

答案 1 :(得分:1)

您可以使用以下snippit来检测GoogleBot,而不是存储到数据库。

if (!strpos($_SERVER['HTTP_USER_AGENT'],"Googlebot")) {
     // log to database
}

答案 2 :(得分:1)

您是否考虑过网上冲浪的所有其他机器人,蜘蛛和自动脚本?他们也会填满你的数据库。了解所有UserAgent,IP和其他特征是很难的。也许你只是将​​历史限制在25个条目中会更好。

所以我的答案是:限制历史记录db 的条目将历史记录存储在访客客户端的cookie中。

答案 3 :(得分:0)

<?php echo $_SERVER['REMOTE_ADDR'];?> 

将为您提供客户的地址。然后设置一个会话变量,根据你检查ip的逻辑来存储或丢弃页面。

@ Jan的回答是更好的方法。虽然这会切断所有机器人。