You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS中如何用两个域名指向同一S3网站且不改变URL?

两个域名指向同一AWS S3静态网站的可行方案

可以实现两个域名指向同一S3静态网站且不改变URL,以下是两种核心方案,以及HTTPS场景的补充说明:

方案1:单S3桶 + Route 53别名记录

这种方案只需要维护一个S3桶,两个域名直接指向该桶的静态网站端点,是最简洁的方式。

步骤:

  1. 确认你的S3桶已开启静态网站托管,记录下它的网站端点(格式类似your-bucket-name.s3-website-<region>.amazonaws.com)
  2. 登录Route 53,进入两个域名的托管区:
    • 对mywebsite1.com和mywebsite2.com分别创建A类型记录
    • 开启「别名」选项,目标选择对应的S3静态网站托管端点(注意要选网站端点,而非S3桶的REST API端点)
  3. 配置S3桶权限:
    • 如果是公开访问的网站,在桶策略中添加允许所有用户读取桶内对象的规则;如果需要限制访问来源,可添加针对两个域名的权限规则

    示例桶策略(公开访问场景):

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": "*",
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::your-bucket-name/*"
        }
      ]
    }
    

方案2:双S3桶 + 内容同步

如果需要每个域名对应独立的S3桶(比如后续可能需要差异化配置),可以创建两个桶并同步内容。

步骤:

  1. 创建两个S3桶,桶名必须分别与你的域名一致:mywebsite1.com和mywebsite2.com(S3裸域名绑定要求桶名与域名完全匹配)
  2. 对两个桶分别开启静态网站托管,设置相同的索引文档(如index.html)和错误文档(如error.html)
  3. 配置内容同步:
    • 使用AWS CLI定时执行同步命令,确保两个桶内容一致:
      aws s3 sync s3://mywebsite1.com s3://mywebsite2.com --delete
      
    • 或者启用S3跨区域复制(CRR),实现自动同步(如果两个桶在同一区域,也可使用同区域复制)
  4. 在Route 53中为每个域名创建A别名记录,指向对应桶的静态网站端点
  5. 为每个桶配置对应的访问权限(同方案1)

补充:HTTPS访问场景

如果需要通过HTTPS访问两个域名,需要配合CloudFront实现:

  1. 在AWS Certificate Manager(ACM)的us-east-1区域申请一张包含mywebsite1.com和mywebsite2.com的SSL证书
  2. 创建CloudFront分发,源设置为你的S3静态网站端点(而非S3桶的REST端点)
  3. 在分发设置中,添加两个域名作为备用域名(CNAMEs),并选择刚才申请的ACM证书
  4. 在Route 53中,将两个域名的A记录都设置为CloudFront分发域名的别名
  5. 确保S3桶的权限允许CloudFront的访问(可通过桶策略限制仅CloudOriginAccessIdentity访问)

替换现有跳转配置的步骤

如果你之前配置了mywebsite2.com跳转至mywebsite1.com,需要:

  1. 进入mywebsite2.com对应的S3桶设置,关闭「静态网站托管」中的跳转配置
  2. 按照上述方案之一重新配置该域名的Route 53记录和S3权限

内容的提问来源于stack exchange,提问作者Abhishek Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:35:23