如何在AWS Amplify中通过重写规则实现多域名场景URL改写
AWS Amplify 通用跨根域名URL重写配置方法
实现原理
利用Amplify重写规则的正则捕获能力,自动提取请求域名的前缀、根域名部分和请求路径,拼接成目标地址,全程不硬编码固定域名,适配任意绑定到应用的根域名场景,同时增加匹配过滤逻辑避免重定向死循环。
操作步骤
- 登录AWS Amplify控制台,进入目标应用详情页,在左侧导航栏选择「托管」分类下的「重写和重定向」选项,点击页面上的「编辑」按钮打开规则配置面板。
- 点击「添加规则」,按如下参数填写规则:
- 源地址:填写正则表达式
^https?://([^.]+)\.(?!b\.)([^/]+\.[^/]+)/(.*)$ - 目标地址:填写
https://$1.b.$2/$3 - 重定向类型:需要永久重定向选
301,临时调试选302 - 勾选规则行末尾的正则表达式替换复选框,开启正则匹配能力
- 源地址:填写正则表达式
- 把这条规则拖到规则列表的最顶部确保优先匹配,点击「保存」等待规则生效即可,一般1-2分钟即可全网生效。
规则说明
- 正则里的
(?!b\.)是负向预查逻辑,会自动跳过已经是前缀.b.根域名格式的请求,避免触发无限重定向死循环。 - 三个捕获组会自动提取对应内容:第一个捕获组
$1是原域名的最前段子域,比如原地址为https://a.example.com/path时,$1值为a;第二个捕获组$2是根域名,对应匹配example.com、example2.org这类任意绑定的根域;第三个捕获组$3是原请求的完整路径,对应匹配path这类路径内容,拼接后完全符合要求的重写效果。 - 规则默认适配所有单级后缀的根域名,包括.com/.org/.cn/.io等常见后缀,如果应用绑定了
.com.cn/.co.jp这类多级后缀域名,只需要调整源地址正则里的根域名捕获段适配即可,不需要单独为每个域名新增规则。
验证方式
规则生效后,访问任意绑定到应用的符合https://前缀.根域名/任意路径格式的地址,都会自动跳转到https://前缀.b.根域名/任意路径,不需要针对单个域名单独调整配置。
内容的提问来源于stack exchange,提问作者Manuel
相关产品推荐
相关产品推荐

