隐藏搜索引擎中的cname

时间:2014-08-29 11:40:44

标签: php html web robots.txt cname

所以我为我的域名创建了CNAME。 e.g:

mycname.domain.com

但所有带有CNAME的网址都会显示在搜索引擎中。如何防止抓取这些网址?我想我必须编辑robots.txt文件,但不是100%肯定。

1 个答案:

答案 0 :(得分:2)

这有点棘手,因为它的CNAME没有物理根文件夹,你不能真正使用robots.txt。所以你必须做一些像.htaccess一样的工作:

RewriteCond %{HTTP_HOST} ^mycname.domain.com$ [NC]
RewriteRule ^robots\.txt$ /robots-mycname.txt [NC,L]

上述规则会将CNAME机器人重定向到其文件,以便它不会与您当前的域机器人文件冲突。

现在您创建一个名为robots-mycname.txt的文件,其中包含以下内容:

User-agent: *
Disallow:

这意味着禁止任何机器人,不幸的是并非所有机器人都尊重robots.txt文件,所以请记住这一点。


另一种方法是简单地拒绝对此CNAME的请求:

RewriteCond %{HTTP_HOST} ^mycname.domain.com$ [NC]
RewriteRule ^ - [F]

您还可以通过设置如下特定用户代理来进一步改进:

RewriteCond %{HTTP_HOST} ^mycname.domain.com$ [NC]
RewriteCond %{HTTP_USER_AGENT} Googlebot [NC]
RewriteRule ^ - [F]

You can also make a list like this...


The simplest way to resolve this issue is to add to your pages the canonical tag, you can read more about it here...

以下是您在此案例中添加到网页的示例:

<link rel="canonical" href="http://main-domain.com/blog/some-page" />

然而,需要对所有受影响的页面进行此操作,如果您使用的是WordPress,Drupal等CMS,则可以使用插件自动为您执行此操作。