我有一个项目位于主域下面的文件夹中,我无法访问域名的根目录。
http://mydomain.com/myproject/
我想禁止在子文件夹“forbidden”
上编制索引http://mydomain.com/myproject/forbidden/
我可以简单地将一个robots.txt放在myproject文件夹中吗?即使root中没有robots.txt,它是否会被读取?
禁止禁用文件夹的正确语法是什么?
User-agent: *
Disallow: /forbidden/
或
User-agent: *
Disallow: forbidden/
答案 0 :(得分:19)
放在哪里
答案简短:在顶层 您的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]