为绑定到同一站点的不同域名配置不同的robots.txt

前言

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

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

实现原理

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

配置过程

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

步骤一:

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

User-agent: *
Disallow: /

步骤二:

在站点的Nginx配置文件中加入下面的配置,意思是当访问的域名是static.ibadboy.net的时候,保留当前URL并返回static_robots.txt的内容。

if ($host = static.ibadboy.net) {
    rewrite  /robots.txt /static_robots.txt last;
}

效果

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

通过主域名访问robots.txt
通过静态资源域名访问robots.txt

结语

通过这种方法,可以有效的防止搜索引擎爬取辅助域名而导致网站的主域名被分散权重,进而保护我们的网站在搜索引擎中的排名不受影响。如果你还有什么问题可以在文章下方评论,我会第一时间回复。