所以我为我的域创建了一个CNAME。例如。:

mycname.domain.com

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

最佳答案

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

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

上面的规则将把CNAMErobot重定向到它的文件,这样它就不会与当前的域robot文件冲突。
现在创建一个名为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,则有插件可以自动为您执行此操作。

关于php - 在搜索引擎中隐藏cname,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25567575/

10-13 02:35