44

我希望抓取我网站的一个页面,而不是其他页面。

另外,如果它与上面的答案有任何不同,我还想知道除了网站的根(索引)之外禁止所有内容的语法。

# robots.txt for http://example.com/

User-agent: *
Disallow: /style-guide
Disallow: /splash
Disallow: /etc
Disallow: /etc
Disallow: /etc
Disallow: /etc
Disallow: /etc

或者我可以这样做吗?

# robots.txt for http://example.com/

User-agent: *
Disallow: /
Allow: /under-construction

另外我应该提到这是一个 WordPress 安装,因此例如“正在建设中”被设置为首页。因此,在这种情况下,它充当索引。

我想我需要的是http://example.comcraweld,但没有其他页面。

# robots.txt for http://example.com/

User-agent: *
Disallow: /*

这是否意味着在 root 之后不允许任何内容?

4

4 回答 4

85

只允许访问一页的最简单方法是:

User-agent: *
Allow: /under-construction
Disallow: /

原始的robots.txt 规范说爬虫应该从上到下读取 robots.txt,并使用第一个匹配规则。如果你把它Disallow放在第一位,那么许多机器人会认为它说他们无法抓取任何东西。通过放置第Allow一个,那些从上到下应用规则的人将看到他们可以访问该页面。

表达式规则很简单:表达式Disallow: /表示“禁止任何以斜线开头的内容”。这意味着网站上的所有内容。

Disallow: /*对 Googlebot 和 Bingbot 的含义相同,但不支持通配符的机器人可以看到/*并认为您的意思是文字*. 所以他们可以假设爬行是可以的/*foo/bar.html

如果您只想 crawl http://example.com,但没有别的,您可以尝试:

Allow: /$
Disallow: /

$意味着“字符串的结尾”,就像在正则表达式中一样。同样,这适用于 Google 和 Bing,但不适用于其他不支持通配符的爬虫。

于 2013-11-08T22:22:22.620 回答
9

如果您登录 Google 网站管理员工具,从左侧面板转到抓取,然后转到以 Google 的身份获取。在这里,您可以测试 Google 将如何抓取每个页面。

在阻止除主页之外的所有内容的情况下:

User-agent: *
Allow: /$
Disallow: /

将工作。

于 2015-01-18T01:17:06.133 回答
3

你可以在下面使用它两者都可以

User-agent: *
Allow: /$
Disallow: /

或者

User-agent: *
Allow: /index.php
Disallow: /

Allow 必须在 Disallow 之前,因为文件是从上到下读取的

Disallow: / 表示“禁止任何以斜线开头的内容。” 这意味着网站上的所有内容。

$ 表示“字符串的结尾”,就像在正则表达式中一样。所以 Allow : /$ 的结果是你的主页 /index

于 2017-09-17T07:12:28.590 回答
2

http://en.wikipedia.org/wiki/Robots.txt#Allow_directive

顺序只对遵循标准的机器人重要;对于 Google 或 Bing 机器人,顺序并不重要。

于 2014-01-27T09:49:13.583 回答