问题在于此。我在系统上有一些URL,它们有这种模式
http://foo-editable.mydomain.com/menu1/option2
http://bar-editable.mydomain.com/menu3/option1
我想在robot.txt文件中指出,不应该对它们进行爬网。然而,我不确定这种模式是否正确:
User-agent: Googlebot
Disallow: -editable.mydomain.com/*
它会像我预期的那样工作吗?
您不能在robots.txt文件中指定域或子域。给定的robots.txt文件仅适用于从中加载的子域。阻止某些子域而不是其他子域的唯一方法是为不同的子域提供不同的robots.txt文件。
例如,在文件中http://foo-editable.mydomain.com/robots.txt你会有:
User-agent: Googlebot
Disallow: /
在http://www.mydomain.com/robots.txt你可以:
User-agent: *
Allow: /
(或者你可能根本没有www子域上的robots.txt文件)
如果您的配置不允许您为不同的子域提供不同的robots.txt文件,您可以考虑其他选项,如robots元标签或X-robots-tag响应标头。
我认为你必须这样编码。
User-agent: googlebot
Disallow: /*-editable.mydomain.com/
不能保证任何机器人都会将星号作为外卡处理,但我认为谷歌机器人会这样做。