同一站点绑定多域名,不同域名如何配置不同的robots.txt

前言

这个需求其实很广泛,就比如说:网站需要做动静分离,静态资源走CDN加速。

这就要求静态资源要有一个单独的域名,但多绑定一个域名意味着权重将会被分散,而更可怕的是搜索引擎有可能会误认为静态域名访问到的网站才是正版,而将你的主域名打入冷宫。如何避免这种情况发生呢?我们可以为不同的域名设置不同的robots.txt,在用于访问静态资源的域名的robots.txt上设置规则禁止搜索引擎爬取页面。

实现原理

要实现这个目的我们可以借用WEB服务器的URL重写功能。定义规则,实现当访问的域名是主域名时返回robots.txt,而当访问的域名是静态资源域名时则返回cdn_robots.txt

配置过程

这里给出Nginx服务器下的配置方法。

步骤一:

在网站根目录创建文件:cdn_robots.txt。写入如下内容来拒绝所有搜索引擎对本域名的爬取。

User-agent: *
Disallow: /

步骤二:

在站点的Nginx配置文件伪静态规则中加入下面的配置,意思是当访问的域名是cdn.9sb.net的时候,保留当前URL并返回cdn_robots.txt的内容。

if ($host = cdn.9sb.net) {
    rewrite  /robots.txt /cdn_robots.txt last;
}

效果对比:

对比图

这里我分别用主域名和静态资源域名来访问robots.txt。

结语

通过这种方法,可以有效的防止搜索引擎爬取辅助域名而导致网站的主域名被分散权重,进而保护我们的网站在搜索引擎中的排名不受影响。

😊
提交

评论区

共 4 条评论

  1. 头像
    动静分离我还没听说过。还能单独给静态资源一个域名。我只搞过前后端分离。为了换主题方便,一天一个主题,哈哈哈😁
    2025年03月03日 广播电视网络有限公司
    1. 头像
      Huo 博主
      @RuiBlog 这两天捣鼓必应搜索引擎呢,存下来留作备用
      2025年03月03日 河北
  2. 头像
    你之前的评论系统好像有点问题
    2025年03月03日 广播电视网络有限公司
    1. 头像
      Huo 博主
      @RuiBlog 好像是因为我前几天搞CDN的时候,缓存设置的不太对,现在应该没问题了吧
      2025年03月03日 河北