robots.txt中的通配符

时间:2014-03-02 22:37:47

标签: web-crawler robots.txt

如果在WordPress网站上我按此顺序排列:

-Parent
--Child
---Subchild

我的永久链接设置为: %类别%/%postname%

让我们举一个例子。 我用帖子名称“体育游戏”创建帖子。 它的标签是运动游戏。 它的完整网址是:domain.com/parent/child/subchild/sport-game 为什么我使用这种永久链接正是为了在robots.txt中更容易地阻止某些内容。

现在这是我有问题的部分。 在robots.txt中:

User-agent: Googlebot
Disallow: /parent/*
Disallow: /parent/*/*
Disallow: /parent/*/*/*

Disallow: /parent/*此规则的含义是阻止domain.com/parent/child但不阻止domain.com/parent/child/subchild而不是domain.com/parent/

Disallow: /parent/*/*/*这是阻塞domain.com/parent/child/subchild/的含义,它只阻止子代,而不是子代,而不是父代,而不是子代下的帖子?

1 个答案:

答案 0 :(得分:4)

请注意*中的Disallow通配符不是原始robots.txt规范的一部分。一些解析器支持它,但由于没有规范,它们可能都会以不同的方式处理它。

如您似乎对Googlebot感兴趣,请查看Google’s robots.txt documentation

在示例中,很明显*表示

  

任何字符串

“任何字符串”当然也可以包含/

因此,您的第一行Disallow: /parent/*应该阻止路径以/parent/开头的每个网址,包括以斜杠分隔的路径段。

请注意,这与原始robots.txt规范中的Disallow: /parent/相同,该规范还会阻止路径以/parent/开头的所有网址,例如:

  • http://example.com/parent/
  • http://example.com/parent/foo
  • http://example.com/parent/foo.html
  • http://example.com/parent/foo/bar
  • http://example.com/parent/foo/bar/
  • http://example.com/parent/foo/bar/foo.html