跳至内容

如何使用 Amazon S3 静态网站托管来重定向请求?

1 分钟阅读
0

我想使用 Amazon Simple Storage Service (Amazon S3) 来托管静态网站并设置网站重定向。

解决方法

首先,为您的 Amazon S3 存储桶激活静态网站托管。然后,配置重定向规则以重定向到另一个存储桶或域

**注意:**对于企业部署,最佳做法是使用 AWS Amplify Hosting 从 Amazon S3 存储桶部署静态网站。将您的 S3 应用程序部署到 AWS Amplify Hosting 可能会收取额外费用。有关详细信息,请参阅 AWS Amplify 定价

在 S3 存储桶端点上配置静态网站托管

完成以下步骤:

  1. 打开 Amazon S3 控制台
  2. 在导航窗格中,选择 Buckets(存储桶)。
  3. 选择要用于静态网站托管的 S3 存储桶。
  4. 选择 Properties(属性)选项卡。
  5. Static website hosting(静态网站托管)中,选择 Edit(编辑),然后选择 Enable(启用)。
  6. 对于 Hosting type(托管类型),选择 Host a static website(托管静态网站)。
  7. 对于 Index document(索引文档),输入网站的主页或默认页面,例如 index.html
    注意:索引名称不要以末尾斜杠“/”开头。例如,不要使用:/index.html。而应使用全小写的 index.html。有关详细信息,请参阅当我在使用 Amazon S3 静态网站重定向功能时,为什么会向 URL 中添加一个末尾斜杠?
  8. 选择 Save changes(保存更改)。
  9. 测试您的网站端点

**注意:**如果您收到 Access Denied(拒绝访问)错误消息,请参阅为什么我在使用 Amazon S3 静态网站托管端点时收到了“Access Denied”(拒绝访问)错误?

(可选)配置静态网站的权限

要授予对您的静态网站的公共读取访问权限,您可以启用 S3 屏蔽公共访问权限。如果您的存储桶中包含您未拥有的对象,则您可能还需要添加一个授予读取访问权限的访问控制列表 (ACL)。如果您不想启用 S3 屏蔽公共访问权限,请创建一个 Amazon CloudFront 分配来为您的静态网站提供服务。

有关详细信息,请参阅设置网站访问权限

**注意:**默认情况下,“S3 屏蔽公共访问权限”功能处于关闭状态。最佳做法是使“S3 屏蔽公共访问权限”保持关闭状态。

为静态网站配置重定向规则

完成以下步骤:

  1. 选择 S3 存储桶的 Properties(属性)选项卡。
  2. Redirection rules(重定向规则)中,输入以下 JSON 规则:
    [
        {
            "Condition": {
                "KeyPrefixEquals": "images/"
            },
            "Redirect": {
                "ReplaceKeyWith": "folderdeleted.html"
            }
        }
    ]
    上述示例 JSON 规则会将对具有 images/ 键前缀的对象的请求重定向到 folderdeleted.html
  3. 选择 Save changes(保存更改)。
    **注意:**要在 Amazon S3 控制台上创建重定向规则,必须使用 JSON。有关重定向规则的更多示例,请参阅重定向规则示例

您还可以使用 Amazon Route 53 将域流量路由到 S3 存储桶

相关信息

为什么我在 Amazon S3 上托管并通过 CloudFront 提供服务的静态网站关闭?

为什么即使我将访问权限限制为特定 Amazon VPC,我在 Amazon S3 上的静态网站仍然可以从公有 IP 地址访问?

AWS 官方已更新 9 个月前