【问题标题】:Cloudfront Custom Origin Is Causing Duplicate Content IssuesCloudfront 自定义来源导致重复内容问题
【发布时间】:2013-05-16 13:10:01
【问题描述】:

我正在使用 CloudFront 为我的网站提供图像、css 和 js 文件,并使用自定义源选项以及 CNAME 到我的帐户的子域。它工作得很好。

主站点: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 获取图像

这一切都很好。

问题在于 google 警报已报告该页面在两个位置都存在:

该页面只能从 www 访问。地点。页面不应从 CNAME 域访问。

我尝试在 .htaccess 文件中放置一个 mod 重写,并且我还尝试在主脚本文件中放置一个 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?

感谢您的帮助。

【问题讨论】:

    标签: duplicates amazon-cloudfront cname


    【解决方案1】:

    [我知道这个帖子很旧,但我会为像我这样几个月后看到它的人回答它。]

    根据我的阅读和所见,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 将从存储桶提供,其他所有内容都将从您的域提供。您可以在任一级别独立选择允许/禁止抓取。

    另一个域/子域也可以代替存储桶,但为什么要麻烦。

    【讨论】:

      【解决方案2】:

      您需要添加一个 robots.txt 文件并告诉爬虫不要索引 static1.mainsite.com 下的内容。

      在 CloudFront 中,您可以控制 CloudFront 用来访问您的服务器的主机名。我建议使用与常规网站主机名不同的特定主机名提供给 CloudFront。这样您就可以检测到对该主机名的请求并提供一个禁止所有内容的 robots.txt(与您的常规网站 robots.txt 不同)

      【讨论】:

        猜你喜欢
        • 2016-02-05
        • 2020-12-29
        • 2020-03-09
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-09
        • 1970-01-01
        相关资源
        最近更新 更多