假设我有一个网站 http://example.com. 。我真的很想让机器人看到主页,但任何其他页面都需要被阻止,因为它对蜘蛛来说毫无意义。换句话说

http://example.com & http://example.com/ 应该被允许,但是http://example.com/anythinghttp://example.com/someendpoint.aspx 应该被阻止。

此外,如果我可以允许某些查询字符串传递到主页,那就太好了:http://example.com?okparam=true

但不是http://example.com?anythingbutokparam=true

有帮助吗?

解决方案

经过一番研究,我发现了一个被主要搜索提供商接受的解决方案: 谷歌 , 雅虎 & msn(我可以在这里找到验证器):

User-Agent: *
Disallow: /*
Allow: /?okparam=
Allow: /$

技巧是使用 $ 来标记 URL 的结尾。

其他提示

Google 的网站管理员工具 报告不允许总是优先于允许,因此没有简单的方法可以在 robots.txt 文件。

您可以通过放置一个来完成此操作 noindex,nofollow META 除主页之外的每个页面的 HTML 中都有标记。

基本的robots.txt:

Disallow: /subdir/

我不认为您可以创建一个表达式来表示“除根目录之外的所有内容”,您必须填写所有子目录。

robots.txt 中也不可能存在查询字符串限制。您必须在后台代码(处理部分)中执行此操作,或者可能使用服务器重写规则来执行此操作。

Disallow: *
Allow: index.ext

如果我没记错的话,第二个子句应该覆盖第一个子句。

据我所知,并不是所有的爬虫都支持Allow标签。一种可能的解决方案可能是将除主页之外的所有内容放入另一个文件夹并禁止该文件夹。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top