如何确认使用了正确的 Robots.txt 文件?
How do I confirm the correct Robots.txt File is being used?
我正在处理的项目有多个 stag 和 dev 域,最终将拥有实际的生产环境。我创建了两个 robots.txt
文件:
robots.txt
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: /
.
我正在处理的项目有多个 stag 和 dev 域,最终将拥有实际的生产环境。我创建了两个 robots.txt
文件:
robots.txt
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
应该 returnrobots.txt
. 的内容
stag.example.com/robots.txt
应该 returnrobots_nocrawl.txt
. 的内容
dev.example.com/robots.txt
应该 returnrobots_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: /
.