為繫結到同一站點的不同域名配置不同的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

結語

透過這種方法,可以有效的防止搜尋引擎爬取輔助域名而導致網站的主域名被分散權重,進而保護我們的網站在搜尋引擎中的排名不受影響。如果你還有什麼問題可以在文章下方評論,我會第一時間回覆。

8 thoughts on “為繫結到同一站點的不同域名配置不同的robots.txt”

    1. 這個就是WordPress的官方主題,略改了下字型。我很喜歡這個主題,沒有多餘的干擾,簡潔明瞭。

Leave a Reply to 夏日部落格 Cancel reply

Your email address will not be published. Required fields are marked *

Captcha Code