在website.com/path/中有一个robots.txt文件,其中包含以下内容:
User-agent: *
Disallow: /
我不希望它申请website.com,只能申请路径本身。
问题是:是/实际意味着./还是指网络根文件夹?
原因:我不想在robots.txt中提供文件夹列表,但如果抓取工具从某个外部链接转到私有,则不应将其编入索引。
答案 0 :(得分:2)
你的robots.txt必须放在主机根目录中,你不能在example.com/path/robots.txt
中拥有robots.txt。
所以你必须将你的robots.txt向上移动一级example.com/robots.txt
。现在很明显Disallow: /
会阻止此主机上的所有内容。
如果您不想提供有关“私人”网址的信息,则只能指定这些网址的开头(如果可能的话):
User-agent: *
Disallow: /p
这会阻止以 example.com/p
开头的所有网址,例如:
example.com/p
example.com/p.html
example.com/path
example.com/path/
example.com/path/foobar
example.com/p12asokd1
如果无法做到这一点(例如,如果您的公开网址也可能以此类字符开头),则可以使用robots
meta
元素。
请注意,在使用robots.txt
来屏蔽网址时,搜索引擎仍可能会将您的网址编入索引并在搜索结果中与其相关联(例如,当有人链接到您的私人网址时)。所以这些网址不再那么“私密”了。当使用meta
方式时,(礼貌的)搜索引擎甚至不会对URL进行索引,因此这对您来说是一个优势。
答案 1 :(得分:1)
您可以尝试Disallow: /*/
,它将阻止任何具有路径和斜杠的内容。这将阻止/foo/bar.html
,但不会阻止根目录中的/index.html
。
不幸的是,它不会阻止/foo
,但根据您的网络服务器,对/foo
的请求可能会被重定向到/foo/
,其中 被阻止
答案 2 :(得分:0)
可悲的是,它也适用于根文件夹。
实际上,每个robots.txt首先应用于根文件夹,然后才能提供有关特定文件夹的详细信息。
当机器人为URL查找“/robots.txt”文件时,它会从URL中剥离路径组件(从第一个单斜杠中删除所有内容),并将“/robots.txt”放在其位置。
例如,对于“http://www.example.com/shop/index.html,它会删除”/shop/index.html“,并将其替换为”/robots.txt“,最后会以”http://www.example.com/robots.txt“结尾。