子目录中的robots.txt

时间:2011-01-29 14:16:30

标签: asp.net seo robots.txt

我有一个项目位于主域下面的文件夹中,我无法访问域名的根目录。

http://mydomain.com/myproject/

我想禁止在子文件夹“forbidden”

上编制索引
http://mydomain.com/myproject/forbidden/

我可以简单地将一个robots.txt放在myproject文件夹中吗?即使root中没有robots.txt,它是否会被读取?

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

User-agent: *
Disallow: /forbidden/

User-agent: *
Disallow: forbidden/

4 个答案:

答案 0 :(得分:19)

来自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”。

     

因此,作为您需要的网站所有者   把它放在网络上的正确位置   生成的URL工作的服务器。   通常那是同一个地方   你把你的网站的主要   “index.html”欢迎页面。哪里   正是这样,以及如何把   文件在那里,取决于您的Web服务器   软件

     

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

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

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

答案 1 :(得分:3)

你不能不幸。 Robots.txt只能位于域的根目录。

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

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

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

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

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