在 website.com/path/ 中有一个 robots.txt 文件,其中包含以下内容:
User-agent: *
Disallow: /
我不希望它申请 website.com,而只是申请路径本身。
问题是: / 实际上是指 ./ 还是指网络根文件夹?
推理:我不想在 robots.txt 中提供文件夹列表,但如果爬虫从某个外部链接获取私有文件,它不应该将其编入索引。
在 website.com/path/ 中有一个 robots.txt 文件,其中包含以下内容:
User-agent: *
Disallow: /
我不希望它申请 website.com,而只是申请路径本身。
问题是: / 实际上是指 ./ 还是指网络根文件夹?
推理:我不想在 robots.txt 中提供文件夹列表,但如果爬虫从某个外部链接获取私有文件,它不应该将其编入索引。
您的 robots.txt 必须放在主机根目录中,您不能在example.com/path/robots.txt
.
所以你必须将你的 robots.txt 上移一级,到example.com/robots.txt
. 现在很明显,它Disallow: /
阻止了该主机上的所有内容。
如果您不想提供有关“私人”网址的信息,则可以仅指定这些网址的开头(如果可能的话):
User-agent: *
Disallow: /p
这将阻止所有以开头的 example.com/p
URL ,例如:
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,所以这对你来说是一个优势。
您可以尝试Disallow: /*/
,这将阻止任何具有路径和斜杠的内容。那会阻塞/foo/bar.html
,但不会阻塞/index.html
在根目录中。
不幸的是,它不会阻止/foo
,尽管根据您的网络服务器,请求可能会被/foo
重定向到/foo/
被阻止的 。
可悲的是,它也将适用于根文件夹。
实际上,每个 robots.txt 都首先适用于根文件夹,然后您才能提供有关特定文件夹的详细信息。
当机器人在“/robots.txt”文件中查找 URL 时,它会从 URL 中删除路径组件(从第一个单斜杠开始的所有内容),并将“/robots.txt”放在它的位置。
例如,对于“ http://www.example.com/shop/index.html ” ,它将删除“/shop/index.html”,并将其替换为“/robots.txt”,最终会得到“ http://www.example.com/robots.txt ”。