我正在从事的项目有多个stag和dev域,最终将具有实际的生产环境。我创建了两个robots.txt
文件:
robots.txt
robots-nocrawl.txt
第一个当然是我要在生产环境中运行并允许Google抓取的标准文件。我不想索引我的dev和stag域,所以我想robots-nocrawl.txt
在访问这些域时解雇,该文件只是具有Disallow /
。
我已将所需的代码添加到.htaccess
文件中,如下所示,并将更改移至我的开发环境中。我可以看到nocrawl文件在那里,但是拉出了URL,但是robots-nocrawl.txt
当我在dev / stag中时,如何检查/确认该文件是正在使用的文件?我找不到测试该方法的方法。
RewriteCond %{HTTP_HOST} ^stag\.mollywade\.([a-z\.]+)$ [OR]
RewriteCond %{HTTP_HOST} ^dev\.mollywade\.([a-z\.]+)$ [OR]
RewriteRule ^/robots\.txt$ /robots_nocrawl.txt [L]
任何帮助和/或建议将不胜感激。
要检查它是否按预期工作,您只需提出必要的要求。例如:
example.com/robots.txt
应该返回的内容robots.txt
。stag.example.com/robots.txt
应该返回的内容robots_nocrawl.txt
。dev.example.com/robots.txt
应该返回的内容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
完全删除该标志。在字符类中使用时,无需转义文字点。$
由于正则表达式默认为贪婪,因此尾随是多余的。
这个文件只是有
Disallow /
我认为这只是您输入中的错字,因为您缺少:
。应该是Disallow: /
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句