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

如何在AWS Route 53配置顶级域名及子域名批量重定向?

在AWS Route 53中实现主域名+全量子域名批量重定向

可以通过S3静态网站托管+Route53通配符记录的组合实现单一配置下的批量重定向,以下是具体步骤:

方法一:低成本实现(S3 + Route53)

1. 创建并配置S3重定向桶

  • 登录AWS S3控制台,创建一个新桶(桶名可自定义,例如foo-redirect-bucket),关闭所有“阻止公共访问”选项。
  • 进入桶的「属性」标签,找到「静态网站托管」并启用,选择「重定向请求」,然后配置:
    • 目标域名:bar.com
    • 重定向规则添加以下XML代码,实现主域名和子域名的批量替换:
      <RoutingRules>
        <RoutingRule>
          <Condition>
            <KeyPrefixEquals></KeyPrefixEquals>
          </Condition>
          <Redirect>
            <HostName>bar.com</HostName>
            <HttpRedirectCode>301</HttpRedirectCode>
          </Redirect>
        </RoutingRule>
        <RoutingRule>
          <Condition>
            <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
          </Condition>
          <Redirect>
            <HostName>${host}</HostName>
            <ReplaceHostPrefix>foo.com,bar.com</ReplaceHostPrefix>
            <HttpRedirectCode>301</HttpRedirectCode>
          </Redirect>
        </RoutingRule>
      </RoutingRules>
      
    第一条规则处理主域名foo.com到bar.com的重定向,第二条规则通过ReplaceHostPrefix将所有*.foo.com替换为对应的*.bar.com。

2. 配置Route53记录

  • 打开Route53控制台,进入foo.com的托管区域:
    • 创建主域名A记录:开启「别名」,选择「别名到S3网站端点」,关联刚才创建的S3桶的静态网站端点(注意匹配桶所在区域)。
    • 创建通配符子域名A记录:记录名称填*,同样开启「别名」并关联同一个S3静态网站端点。

方法二:灵活扩展方案(CloudFront + Lambda@Edge)

如果需要自定义重定向逻辑(比如路径保留、状态码调整),可以使用CloudFront配合Lambda@Edge:

1. 创建Lambda重定向函数

  • 在us-east-1区域创建Lambda函数(Node.js运行时),编写以下代码:
    exports.handler = (event, context, callback) => {
      const request = event.Records[0].cf.request;
      const host = request.headers.host[0].value;
      const newHost = host.replace(/foo\.com$/, 'bar.com');
      const redirectUrl = `https://${newHost}${request.uri}`;
    
      const response = {
        status: '301',
        statusDescription: 'Moved Permanently',
        headers: {
          location: [{ key: 'Location', value: redirectUrl }]
        }
      };
      callback(null, response);
    };
    
  • 将函数发布为新版本,并添加CloudFront触发器权限。

2. 配置CloudFront分发

  • 创建CloudFront分发,源可指向任意公开静态资源(比如空S3桶),将上述Lambda函数关联到「Viewer Request」事件。

3. 配置Route53记录

  • 在foo.com托管区域创建主域名和通配符子域名的A记录,别名指向CloudFront分发域名。

验证配置

使用curl -I foo.com和curl -I admin.foo.com命令检查响应头中的Location字段,确认重定向目标是否符合预期。

内容的提问来源于stack exchange,提问作者Bernard Wiesner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:13:09