我想要抓取我的网站的一个页面,而不是其他页面。
此外,如果它与上面的答案有任何不同,我还想知道除了网站的根目录(索引)之外的所有内容的语法。
# 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: /*
这是否意味着在根之后不允许任何事情?
答案 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机器人,订单并不重要。