繁体   English   中英

子目录中的 robots.txt

[英]robots.txt in subdirectory

我有一个位于主域下的文件夹中的项目,但我无权访问域本身的根目录。

http://mydomain.com/myproject/

我想禁止在子文件夹“禁止”上建立索引

http://mydomain.com/myproject/forbidden/

我可以简单地将 robots.txt 放在 myproject 文件夹中吗? 即使根目录中没有 robots.txt,它也会被读取吗?

禁止禁止文件夹的正确语法是什么?

User-agent: *
Disallow: /forbidden/

或者

User-agent: *
Disallow: forbidden/

来自robotstxt.org

把它放在哪里

简短的回答:在您的Web服务器的顶级目录中。

答案越长:

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

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

因此,作为网站所有者,您需要将其放在Web服务器上的正确位置,以便生成该URL。 通常,这是您放置网站主要“index.html”欢迎页面的位置。 究竟是什么,以及如何将文件放在那里,取决于您的Web服务器软件。

请记住使用全文小写作为文件名:“robots.txt”,而不是“Robots.TXT。

所以我害怕答案是你必须把它放在根文件夹中:-(

关于你的第二个问题,我认为正确的语法是以正斜杠开头的语法(例如/forbidden/ )。

你不能不幸。 Robots.txt只能在域的根目录下。

也许如果你问领域的所有者,他会有责任吗?

第一种语法是正确的语法,但请记住它必须是来自域根的绝对路径。

如果您没有root,则可以使用“robots meta tag”。

https://developers.google.com/webmasters/control-crawl-index/docs/robots_meta_tag

实际上,我可以在子文件夹中看到robots.txt上的各种机器人的请求,这总是会导致404错误。 只是其中一些机器人:

因此,如果您想阻止这些用dumb 404错误向您的错误日志发送垃圾邮件,您可以通过.htaccess将这些请求重定向到正确的位置:

RewriteRule .+/robots.txt$ /robots.txt [R=301,L]

由于这是谷歌搜索时显示的最佳结果之一,我想提供更新的答案并参考谷歌自己的文档。 从上一个答案链接的 robotstxt 网站已经过时并且有一些不正确的信息,尽管 Klaus 的答案基本保持不变。

简而言之:不。 它必须在根目录中。 这是谷歌对此事的官方声明

较长的版本是您应该使用机器人元标记来禁止子目录中的某些页面,如 Stairbob 所建议的那样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM