问题是这样的。我的系统上有一些具有这种模式的 URL
http://foo-editable.mydomain.com/menu1/option2
http://bar-editable.mydomain.com/menu3/option1
我想在 robots.txt 文件中指出它们不应该被抓取。但是,我不确定这种模式是否正确:
User-agent: Googlebot
Disallow: -editable.mydomain.com/*
它会按我的预期工作吗?
问题是这样的。我的系统上有一些具有这种模式的 URL
http://foo-editable.mydomain.com/menu1/option2
http://bar-editable.mydomain.com/menu3/option1
我想在 robots.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/
不能保证任何机器人都会将星号作为通配符处理,但我认为 googlebot 会。