【问题标题】:Hide cname from search engines从搜索引擎中隐藏 cname
【发布时间】:2014-10-23 10:10:40
【问题描述】:

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

mycname.domain.com

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

【问题讨论】:

  • 在 robots.txt 中添加限制,使其无法访问这些网址
  • 那个,或者过滤 googlebot 用户代理并给他 403

标签: php html web robots.txt cname


【解决方案1】:

这有点棘手,因为它是一个没有物理根文件夹的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,则有插件可以自动为您执行此操作。

【讨论】:

  • 感谢您的回答,但我有点困惑为什么它被否决了?我是新来的,即使它确实有其他人的输入,它看起来也确实正确。 Downvoting 让这个答案对于任何未来的读者来说都是错误的......
  • 这个答案对于开发服务器来说确实是一个很好的解决方法,就像我的情况一样,所以我真的不明白为什么它被否决了。 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
相关资源
最近更新 更多