我如何只允许抓取工具访问网站的一部分?

时间:2013-07-30 08:41:48

标签: php web-crawler robots.txt

我有一个ajax丰富的网站,它有广泛的_escaped_fragment_部分用于Ajax索引。虽然我的所有_escaped_fragment_网址都会重定向到特殊模块,然后输出抓取工具所需的HTML快照(即mysite.com/#!/content重定向到mysite.com/?_escaped_fragment_=/content,而{301}重定向到mysite.com/raw/content),我就是有些害怕用户绊倒那些“原始”网址并让它们出现在搜索引擎中。

在PHP中,我如何确保只有机器人可以访问网站的这一部分? (很像StackOverflow不允许其站点地图给普通用户,只允许机器人访问它)

1 个答案:

答案 0 :(得分:2)

你不能,至少不可靠。

robots.txt 要求蜘蛛远离网站的某些部分,但普通用户代理没有相应的内容。

您最接近的可能是尝试保留可接受的IP地址或用户代理的白名单,并基于此提供不同的内容......但这可能会产生误报。

就个人而言,我会停止迎合旧IE,废弃#! URI和escaped_fragment黑客,切换到使用pushState and friends,并让服务器构建初始视图任何给定的页面。