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

How do I confirm the correct Robots.txt File is being used?

我正在处理的项目有多个 stag 和 dev 域,最终将拥有实际的生产环境。我创建了两个 robots.txt 文件:

  1. robots.txt
  2. robots-nocrawl.txt

第一个当然是我要 运行 生产并允许 google 抓取的标准文件。我不希望我的 dev 和 stag 域被索引,所以我希望在访问这些域时触发 robots-nocrawl.txt,这个文件只有 Disallow /

我已经在 .htaccess 文件中添加了所需的代码,见下文,并将更改移至我的开发环境。我可以看到 nocrawl 文件在那里,但是拉起 URL,但是如何 check/confirm 当我在 [=34= 时使用 robots-nocrawl.txt 文件]?我找不到测试这个的方法。

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

任何帮助 and/or 的建议将不胜感激。

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

  • example.com/robots.txt 应该 return robots.txt.
  • 的内容
  • stag.example.com/robots.txt 应该 return robots_nocrawl.txt.
  • 的内容
  • dev.example.com/robots.txt 应该 return robots_nocrawl.txt.
  • 的内容

但是,您当前的 .htaccess 文件中存在一些严重错误,这些错误将阻止此操作:

  • RewriteRule模式^/robots\.txt$在每个目录.htaccess上下文中永远不会匹配。不应有斜线前缀。这应该是 ^robots\.txt$.

  • 你有 OR 两个条件(如果不是因为上述模式不匹配)导致 RewriteRule 无条件执行!

所以,这些指令应该写成:

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

你不妨把这两个条件合二为一,然后你就可以把OR标志一并去掉了。在字符 class 内使用时,无需转义文字点。尾随 $ 是多余的,因为默认情况下正则表达式是贪婪的。

this file simply has Disallow /

我认为这只是您问题中的错字,因为您缺少 :。应该是 Disallow: /.