背景
我在S3上有一个静态网站,在Google上索引了10000个HTML网页。我正在转向新版本,我想从Google索引中删除旧页面(可能已不存在)。我在网上看到,最有效的方法是返回HTTP 410(Gone)
问题
根据http://docs.aws.amazon.com/AmazonS3/latest/dev/CustomErrorDocSupport.html,您在使用S3静态网站时无法返回HTTP 410
Api Gateway
我创建了一个返回HTTP 410的API网关的模拟集成。然后我配置了我的S3存储桶以自动将特定前缀重定向到此URL。但是,看到的返回码是HTTP 301(第一次重定向)。如果我直接获取API端点,我成功收到410,但是如果我通过S3 GET访问API,则错误代码为301
下一步
如果有人知道如何在S3上托管的静态网站上返回HTTP 410,请告诉我。
此外,如果你能想到一个更好的替代方法来取消对谷歌旧页面的索引(手动工具不是解决方案,因为我有大量的页面),请告诉我:)
答案 0 :(得分:0)
我真的觉得更好的答案是使用非常简单的数据库表将服务器放在S3内容的前面。你真正的问题是确定410与404.也就是说,你知道一个页面已经消失,但你如何区分错字或其他错误呢?
我想要的是一个由路径名索引的表 - 即/path/to/my/file.html和某种状态。服务器接受完整路径的请求,在数据库中进行查找并为页面提供服务(假设页面为"活动"或者"可用")或410你知道页面没有活动。如果在数据库中找不到该页面,则返回404。
我用这种方法看到的两个问题是:
有些内容管理系统可以为您完成这些工作,或者在我已经概述的问题出现之前编写一个简单的服务器来做这件事并不会太糟糕。