有人能告诉我如何从链接到主域的谷歌索引中删除子域吗。
假设我的域是www.myweb.com,我的子域是cdn.myweb.com。现在,子域的文档根目录与主域相同。所以我不能使用robot.txt来停止谷歌索引,因为它也会删除对主域链接的索引。
我也在谷歌、bing和stackoverflow上搜索,但我找不到这个问题的完美答案。你这边有解决方案吗?
您可以为此目的使用dynamic robots.txt。像这样的。。。
httpd.conf(.htaccess):
RewriteRule /robots.txt$ /var/www/myweb/robots.php
robots.hp:
<?php
header('Content-type: text/plain');
if($_SERVER['HTTP_HOST']=='cdn.myweb.com'){
echo "User-agent: *n";
echo "Disallow: /n";
}else{
include("./robots.txt");
}
我使用的是nginx,在同一个服务器块中有多个子域。我希望www子域包含在谷歌的索引中,而其他子域则被排除在外。
首先,在nginx-config的服务器块中,我添加了以下内容,根据域的不同,在/robots.txt中提供两个不同的文件。
location ~ /robots.txt {
if ($host = 'www.example.com') {
rewrite ^/robots.txt /robots.www.txt last;
}
}
然后在我的站点的根目录中,并有以下2个文件:
- robots.txt它阻止爬网,是所有子域的默认值
# Do not crawl subdomain
User-Agent: *
Disallow: /
- robots.www.txt,它允许对所有网站进行爬网,并且仅在www.example.com/robots.txt上提供服务
User-agent: *
Disallow:
第一件事是添加robots.txt,但在我的情况下,由于我的页面已经用CDN子域进行了索引,所以对机器人来说为时已晚。我找到的最好的方法是转到谷歌站长工具,添加我的cdn域(cdn.mysite.com)。然后转到谷歌索引->删除url并删除/url。它花了几天时间才生效。