2

我在托管 MVC4 网站的共享主机帐户上配置了多个主机名。我这样做是为了从这些多个主机名加载静态资源,以通过发出并行请求来获得一些速度。所有这些主机名都映射到 IIS 中的同一站点/应用程序。然后我们更改静态资源的 URL 以从这些主机名加载它们。基本上,它就像从 CDN 加载(我们并没有真正使用 CDN,只是让它并行加载。)

但是,我想阻止搜索引擎和其他爬虫访问这些多主机名/子域。否则,它将在搜索列表中列出它们。

我想添加 robots.txt,但这些域使用相同的应用程序。因此,我的主域已经有了 robots.txt。

关于如何防止爬虫爬取这些额外的主机名的任何想法?

4

3 回答 3

2

将以下规则添加到节点下的 web.config 中。

<rewrite>
  <rules>
    <rule name="Imported Rule 1" stopProcessing="true">
      <match url="^robots\.txt$" ignoreCase="false" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="^cdn\.yourdomain\.com$" />
      </conditions>
      <action type="Rewrite" url="/cdn.robots.txt" />
    </rule>
  </rules>
</rewrite>
于 2013-07-15T12:26:26.213 回答
2

在 Google 网站管理员工具中,您可以设置“规范化”的首选项。这是用于描述具有首选来源的重复内容的术语(更准确地说,它指的是首选来源本身)。谷歌在网站管理员工具的答案部分讨论了他们关于重复内容规范化的政策。

总结页面最简单/最好的方法是在您的网站管理员工具网站设置中设置一个“首选域”,并在您的重复页面中设置链接元素,rel="canonical"以表明您的首选来源以用于 SEO 目的。

如果您希望http://www.example.com/dresses/greendress.html成为您列表的规范 URL,您可以通过将具有属性 rel="canonical" 的元素添加到非规范页面。为此,请创建如下链接:

<link rel="canonical" href="http://www.example.com/dresses/greendress.html">

规范链接并非特定于 Google。它们在RFC 6596中定义,并且已知自 2009 年以来也受到 Yahoo 和 Bing 的支持。

关于链接关系类型,“规范”可以非正式地描述为作者对资源的首选版本。更正式地说,规范链接关系从一组资源中指定首选 IRI,这些资源以重复的形式返回上下文 IRI 的内容。一旦指定,搜索引擎等应用程序可以将处理重点放在规范上,并且可以更新对上下文(引用)IRI 的引用以引用目标(规范)IRI。

设置规范链接不会阻止搜索引擎抓取您的重复页面,但它应该确保您的页面排名和搜索链接被正确分配(这确实是重要的部分)。理论上,GoogleBot 和其他爬虫最终应该找出哪个基本 url 是真正的内容,并且不应该像你的“主要”页面那样频繁或密集地爬取你的重复内容。

于 2013-07-15T14:43:15.453 回答
0

为避免此问题,建议在一个子域中上传静态内容,并将您的所有 CDN 资源指向您的子域。然后使用 robots.txt 文件或使用 Google 网站管理员工具阻止您的子域。

于 2013-06-21T06:57:52.023 回答