robots.txt禁止除一个以外的所有页面?他们是否覆盖和级联?

时间:2013-11-08 21:41:51

标签: robots.txt

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

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

# 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.com重新开始,但没有其他页面。

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

User-agent: *
Disallow: /*

这是否意味着在根之后不允许任何事情?

4 个答案:

答案 0 :(得分:62)

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

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

original robots.txt specification表示抓取工具应从上到下阅读robots.txt,并使用第一个匹配规则。如果您先放置Disallow,那么很多机器人会认为它们无法抓取任何内容。首先放置Allow,从上到下应用规则的人会看到他们可以访问该页面。

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

您的Disallow: /*对Googlebot和Bingbot来说意味着同样的事情,但是不支持通配符的机器人可以看到/*,并认为您的意思是文字*。所以他们可以假设可以抓取/*foo/bar.html

如果您只想抓取http://example.com,而不想抓取其他内容,可以尝试:

Allow: /$
Disallow: /

$表示“字符串结束”,就像正则表达式一样。同样,这适用于Google和Bing,但如果他们不支持通配符,则不适用于其他抓取工具。

答案 1 :(得分:7)

如果您登录Google网站站长工具,请从左侧面板转到抓取,然后转到Google抓取方式。在这里,您可以测试Google将如何抓取每个页面。

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

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

会奏效。

答案 2 :(得分:3)

你可以在下面使用这两个都可以工作

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

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

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

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

$表示"字符串结尾,"喜欢正则表达式。所以Allow:/ $的结果是你的主页/索引

答案 3 :(得分:2)

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

  

订单仅对符合标准的机器人很重要;对于Google或Bing机器人,订单并不重要。