amazon-web-services - S3 静态网站 : Return HTTP 410

标签 amazon-web-services redirect amazon-s3 seo

背景

我在 S3 上有一个静态网站,Google 索引了 10000 个 HTML 页面。我要迁移到新版本,我想从 Google 索引中删除旧页面(可能不再存在)。我在网上读到,最有效的方法是返回 HTTP 410(消失)

问题

根据 http://docs.aws.amazon.com/AmazonS3/latest/dev/CustomErrorDocSupport.html , 使用 S3 静态网站时不能返回 HTTP 410

API 网关

我创建了 API 网关的模拟集成,它返回 HTTP 410。然后我配置我的 S3 存储桶以自动将特定前缀重定向到此 url。但是,看到的返回码是 HTTP 301(第一次重定向)。如果我直接获取 API 端点,我会成功收到 410,但是如果我通过 S3 GET 访问 API,则错误代码为 301

下一步是什么

如果有人知道如何在 S3 上托管的静态网站上返回 HTTP 410,请告诉我。

此外,如果您能想到一个更好的替代方法来取消 Google 上旧页面的索引(手动工具不是解决方案,因为我有大量页面)请告诉我:)

最佳答案

我真的觉得更好的答案是在 S3 内容前面放置一个服务器,其中包含一个非常简单的数据库表。您真正的问题是确定 410 还是 404。也就是说,您知道某个页面已消失,但您如何区分拼写错误或其他错误?

我设想的是一个由路径名索引的表 - 即/path/to/my/file.html 和某种状态。服务器接受对完整路径的请求,在数据库中进行查找并提供该页面(假设该页面是“事件的”或“可用的”),或者如果您知道该页面不活动则返回 410。如果在数据库中找不到该页面,则返回 404。

我看到这种方法的两个问题是:

  1. 数据库的初始填充。如果您已经从 S3 中删除了页面,那么您如何知道何时放入页面和“不可用”标志?我不确定我们在谈论多少页,但第一次可能会很大。
  2. 维护 - 下次您需要停用一些页面时,您可能需要某种管理界面。

有一些内容管理系统可以为您做一些这样的事情,或者编写一个简单的服务器来做这件事也不会太糟糕,以解决我已经概述的问题。

关于amazon-web-services - S3 静态网站 : Return HTTP 410,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41399393/

相关文章:

.net - 302 重定向很慢 (IIS6)

php - 将 Url 传递到另一个页面的最佳方式

java - Spring Boot Controller 不重定向

amazon-s3 - 可以通过 S3 REST API 访问的有效 S3 key 名称是什么?

python - 在 boto3 中使用 RDS 标签/如何在 boto3 中获取 ARN

node.js - UnhandledPromiseRejectionWarning : Error: Network error: apollo_cache_inmemory_1. readQueryFromStore 不是函数 aws appsync nodejs

amazon-web-services - 使用 IAM 策略文档对象列表作为 AWS::Serverless::Function 策略

java - 使用 Apache Spark 解析来自 Amazon S3 的文件

java - 如何与客户交换加密 key ?

php - 亚马逊s3批量上传