我通过 Cloudfront 有一个静态站点,通过 Route 53 有一个 S3 源和自定义域。一切正常,除了 Google 还索引了 Cloudfront 分发 url (d123etc.cloudfront.net) 以及我的自定义域,导致重复的内容问题。
我已经尝试过规范的 url,但分布仍然被索引。建议根据使用的域提供不同的 robots.txt,这听起来不错,但没有 .htaccess 或 Web 服务器,将其留给 Lambda Edge 函数尝试发送不同的 robots.txt .
问题是我无法在函数中找到如何确定请求是来自我的自定义域还是来自直接分发 url。我已尝试将 Origin 列入白名单,但在使用 S3 源时未发送。我也尝试将Referer标头列入白名单,但在访问robots.txt文件时没有发送referrer,因为它是直接请求。
暂时,我在页面加载时使用 js 添加一个 meta noindex 客户端(我意识到为时已晚),并将客户端重定向到我的实际域,以防有人关注谷歌索引的 cloudfront.net领域。
有谁知道如何在 Lambda Edge 中检测用于发出请求的域?或者阻止谷歌索引 Cloudfront url 的其他方式,只是让它索引自定义域。