2012-01-06 80 views
10

我正在使用CloudFront爲我的網站提供圖像,css和js文件,並使用自定義來源選項將子域CNAMEd添加到我的帳戶。它工作得很好。Cloudfront自定義原因導致重複內容問題

主要網站:www.mainsite.com

  1. static1.mainsite.com
  2. static2.mainsite.com

樣頁:www.mainsite.com/summary/page1。 HTM

此頁面調用從static1.mainsite.com/images/image1.jpg圖像

如果Cloudfront尚未緩存圖像,它從www.mainsite.htm/images/image1.jpg獲取圖像

這一切都正常工作。

的問題是,谷歌警報已報道的頁面,在兩個被人發現:

頁面應該只從WWW訪問。現場。不應該從CNAME域訪問頁面。

我試圖把一個mod重寫在.htaccess文件中,我也試圖把一個exit()放在主腳本文件中。

但是,當Cloudfront在其緩存中找不到該文件的static1版本時,它會從主站點調用它,然後對其進行緩存。

問題則是:

1. What am I missing here? 
2. How do I prevent my site from serving pages instead of just static components to cloudfront? 
3. How do I delete the pages from cloudfront? just let them expire? 

感謝您的幫助。

回答

0

您需要添加一個robots.txt文件,並告訴爬蟲不會因static1.mainsite.com內容編制索引。

在CloudFront中,您可以控制CloudFront將訪問您的服務器的主機名。我建議使用一個特定的主機名給CloudFront,這與您的常規網站主機名不同。這樣,你可以檢測到該主機名的請求,並提供一個不允許任何事情的robots.txt(不像你的常規網站robots.txt)

25

[我知道這個線程是舊的,但我正在回答像我這樣的人誰看到它幾個月後。]

從我所閱讀和看到的,CloudFront並不一致地標識自己的請求。但是您可以通過在CloudFront分配中重寫robots.txt來解決此問題。

1)創建一個新的S3存儲桶,其中只包含一個文件:robots.txt。這將是您的CloudFront域的robots.txt。

2)轉到AWS控制檯中的分配設置,然後單擊創建原點。添加存儲桶。

3)進入行爲,然後單擊創建行爲: 路徑模式:robots.txt的 來源:(新桶)

4)以較高的優先級(下數設置robots.txt的行爲)。

5)進入無效狀態並使/robots.txt無效。

現在abc123.cloudfront.net/robots.txt將從存儲區提供,其他所有內容都將從您的域中提供。您可以選擇獨立允許/禁止在任一級別進行爬網。

另一個域名/子域名也可以代替一個存儲桶,但爲什麼會遇到麻煩。

相關問題