我有一个分类广告网站。在这个网站上,我存储在数据库中,用户访问的每个产品页面用于历史记录,因此他可以查看他访问过的最后产品。
问题在于,当googlebot和其他人进入我的网站时,数据库会填满成千上万的邮件,因为它会剔除Google访问的数千个产品页面。
我使用$_SERVER['HTTP_USER_AGENT']
尝试了各种功能,试图找出当前用户是否是googlebot,如果是,请不要在数据库中查看页面浏览量,以免因垃圾邮件无法使用结果,但它们似乎都不起作用,因为我得到谷歌的IP并在我的数据库中识别它们。
你们中的任何一个人都知道在PHP中有一个好方法可以确保谷歌留在外面吗?
答案 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的回答是更好的方法。虽然这会切断所有机器人。