如何通过AWS将example.net/*全路由重定向至example.com/*?
实现example.net/*到example.com/*的全路径重定向(AWS环境)
修正S3静态网站重定向配置
如果你的重定向是基于S3静态网站托管实现的,之前仅设置"重定向到另一个域名"的方式只会处理根路径,需改用重定向规则来传递完整路径:
- 打开目标S3桶的「静态网站托管」设置
- 选择「使用重定向规则」选项
- 填入以下XML规则:
<RoutingRules> <RoutingRule> <Condition> <KeyPrefixEquals></KeyPrefixEquals> </Condition> <Redirect> <HostName>example.com</HostName> <Protocol>https</Protocol> <!-- 根据实际业务需求切换为http或https --> <ReplaceKeyPrefixWith></ReplaceKeyPrefixWith> </Redirect> </RoutingRule> </RoutingRules>
该规则会将所有路径请求(包括example.net/test这类子路径)完整映射到example.com的对应路径。
CloudFront分发的配套调整(若使用CloudFront)
如果配置了CloudFront加速,需确保:
- CloudFront源指向S3静态网站的域名(格式类似
bucket-name.s3-website-region.amazonaws.com,而非S3 REST端点) - 在CloudFront的「行为」设置中,确认缓存策略不会拦截路径参数传递,且未设置覆盖重定向的自定义规则
- 配置自定义错误响应(如404)为301/302重定向,避免子路径因返回404而无法跳转
Route53记录验证
检查Route53中example.net的A/AAAA记录,确保是指向S3静态网站或CloudFront分发的别名记录,而非直接绑定S3桶的IP地址。
测试与生效等待
- 配置变更后需等待5-30分钟让DNS和缓存生效
- 用隐私模式浏览器或
curl -I example.net/test命令测试,确认响应头返回301/302状态码,且Location字段指向example.com/test
内容的提问来源于stack exchange,提问作者Fed
相关产品推荐
相关产品推荐

