代码之家  ›  专栏  ›  技术社区  ›  user1176783

如何确认使用了正确的Robots.txt文件?

  •  1
  • user1176783  · 技术社区  · 6 年前

    我有不同的stag和dev领域的一个项目,我的工作,并最终将有实际的生产环境。我创造了两个 robots.txt 文件夹:

    1. robots-nocrawl.txt

    第一个当然是我想在产品上运行的标准文件,允许google爬行。我不想我的dev和stag域被索引,所以我想 在访问这些域时激发,此文件仅具有 Disallow / .

    我已经添加了所需的代码 .htaccess

    RewriteCond %{HTTP_HOST} ^stag\.mollywade\.([a-z\.]+)$ [OR]
    RewriteCond %{HTTP_HOST} ^dev\.mollywade\.([a-z\.]+)$ [OR]
    RewriteRule ^/robots\.txt$  /robots_nocrawl.txt [L]
    

    1 回复  |  直到 6 年前
        1
  •  2
  •   MrWhite    6 年前

    要检查它是否按预期工作,只需提出必要的请求。例如:

    • example.com/robots.txt 应该返回 robots.txt .
    • stag.example.com/robots.txt 应该返回 robots_nocrawl.txt
    • dev.example.com/robots.txt 应该返回 机器人\u nocrawl.txt

    但是,在当前的应用程序中有几个关键错误 .htaccess 阻止此操作的文件:

    • RewriteRule 图案 ^/robots\.txt$ 不会在每个目录中匹配 .htaccess访问 上下文。不应该有斜杠前缀。这应该是 ^robots\.txt$ .

    • 你有 OR

    因此,这些指令应写成:

    RewriteCond %{HTTP_HOST} ^(stag|dev)\.mollywade\.([a-z.]+)
    RewriteRule ^robots\.txt$  /robots_nocrawl.txt [L]
    

    您不妨将这两个条件合并为一个条件,然后可以删除 全部标记。在字符类中使用时,不需要转义文字点。尾随 $ 是多余的,因为正则表达式在默认情况下是贪婪的。

    这个文件只是 Disallow /

    我想这只是你问题中的一个输入错误,因为你漏了一个字母 : . 应该是的 Disallow: /