0

在 website.com/path/ 中有一个 robots.txt 文件,其中包含以下内容:

User-agent: *
Disallow: /

我不希望它申请 website.com,而只是申请路径本身。

问题是: / 实际上是指 ./ 还是指网络根文件夹?

推理:我不想在 robots.txt 中提供文件夹列表,但如果爬虫从某个外部链接获取私有文件,它不应该将其编入索引。

4

3 回答 3

2

您的 robots.txt 必须放在主机根目录中,您不能在example.com/path/robots.txt.

所以你必须将你的 robots.txt 上移一级,到example.com/robots.txt. 现在很明显,它Disallow: /阻止了该主机上的所有内容。

如果您不想提供有关“私人”网址的信息,则可以仅指定这些网址的开头(如果可能的话):

User-agent: *
Disallow: /p

这将阻止所有以开头的 example.com/pURL ,例如:

  • example.com/p
  • example.com/p.html
  • example.com/path
  • example.com/path/
  • example.com/path/foobar
  • example.com/p12asokd1

如果这是不可能的(例如,如果您的公共 URL 也可能以此类字符开头),您可以使用该robots meta元素。

请注意,当使用robots.txt阻止 URL 时,搜索引擎可能仍会将您的 URL 编入索引并在其搜索结果中链接到它(例如,当有人链接到您的私人 URL 时)。所以这些 URL 不再那么“私密”了。当使用这种meta方式时,(礼貌的)搜索引擎甚至不会索引 URL,所以这对你来说是一个优势。

于 2013-03-25T11:00:47.680 回答
1

您可以尝试Disallow: /*/,这将阻止任何具有路径和斜杠的内容。那会阻塞/foo/bar.html,但不会阻塞/index.html在根目录中。

不幸的是,它不会阻止/foo,尽管根据您的网络服务器,请求可能会/foo重定向到/foo/被阻止的 。

于 2013-03-24T13:56:14.420 回答
0

可悲的是,它也将适用于根文件夹。

实际上,每个 robots.txt 都首先适用于根文件夹,然后您才能提供有关特定文件夹的详细信息。

来自robotstxt.org

当机器人在“/robots.txt”文件中查找 URL 时,它会从 URL 中删除路径组件(从第一个单斜杠开始的所有内容),并将“/robots.txt”放在它的位置。

例如,对于“ http://www.example.com/shop/index.html ” ,它将删除“/shop/index.html”,并将其替换为“/robots.txt”,最终会得到“ http://www.example.com/robots.txt ”。

于 2013-03-24T11:33:32.243 回答