php代码排除谷歌


php code to exclude google

我有一个分类广告网站。在这个网站上,我将用户访问的每个产品页面存储在数据库中,以便查看他上次访问的产品。

问题是,当谷歌机器人和其他人进入我的网站时,数据库会充满数千个条目,因为它会破坏谷歌访问的数千个产品页面。

我尝试了$_SERVER['HTTP_USER_AGENT']的各种功能,试图找出当前用户是否是谷歌机器人,如果是,不要破坏数据库中的页面浏览量,这样它就不会收到无用的结果,但它们似乎都不起作用,因为我得到了谷歌ip,并在我的数据库中识别了它们。

你们中有人知道php中的一个好方法来确保谷歌脱颖而出吗?

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

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

为什么你只想把谷歌拒之门外?其他搜索引擎可能也会索引你的网站。bing、雅虎、altavista和其他公司呢?

您可以使用robots.txt来禁止任何爬网程序为您的网站编制索引。

在你的根目录中制作一个robots.txt,并在其中放入以下内容:

User-agent: *
Disallow: /

如果你想在某些页面上允许爬网程序,你可以设置meta而不是

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

并不是所有的机器人都是"好"的,并尊重这些标签。

你有没有想过所有其他的机器人、蜘蛛和自动脚本在网上冲浪?它们还会填满你的数据库。了解所有这些UserAgents、IP和其他特性简直是地狱。也许你最好把历史记录限制在25个条目以内。

所以我的答案是:限制你的历史数据库的条目,将历史记录存储在访问者客户端的cookie中。

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

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

@简的答案更好。尽管这将切断所有机器人的电源。