AWS Route 53含路径域名重定向配置方法(ECS Fargate+ALB场景)
实现旧域名到新域名的路径保留重定向(AWS ECS Fargate + ALB场景)
方案一:Application Load Balancer (ALB) 层面配置(推荐,无需修改应用)
这是最直接的方式,重定向逻辑在负载均衡层处理,无需改动ECS上的应用代码。
第一步:绑定旧域名到ALB
在DNS服务商(如Route 53)中,将oldurl.com的A/AAAA记录指向ALB的DNS名称,配置方式与新域名newurl.com一致。第二步:配置ALB监听器规则
- 登录AWS控制台,进入EC2服务,找到目标ALB后切换到「监听器」标签。
- 针对正在使用的端口(通常是443/HTTPS),点击「查看/编辑规则」。
- 添加一条优先级更高的规则:
- 条件:选择「主机头」匹配,输入
oldurl.com(如需覆盖子域名,可使用*.oldurl.com) - 操作:选择「重定向」,按以下参数配置:
- 协议:保持与请求一致(或指定为HTTPS)
- 端口:443
- 主机:
newurl.com - 路径:
#{path}(ALB内置变量,自动保留原请求的路径部分) - 查询字符串:
#{query}(可选,保留原请求的查询参数) - 重定向代码:推荐用
301(永久重定向,利于SEO),临时过渡可选用302
- 条件:选择「主机头」匹配,输入
- 保存规则,确保该规则优先级高于默认的转发到ECS目标组的规则。
方案二:在ECS容器应用中处理重定向
如果需要更灵活的重定向逻辑(比如特定路径例外),可以在Web应用代码中实现:
示例1:Nginx配置
若应用使用Nginx作为反向代理,修改配置文件:
server { listen 80; server_name oldurl.com; location / { return 301 $scheme://newurl.com$request_uri; } }
示例2:Node.js (Express) 中间件
若应用基于Express框架,添加全局中间件:
app.use((req, res, next) => { if (req.hostname === 'oldurl.com') { return res.redirect(301, `https://newurl.com${req.originalUrl}`); } next(); });
修改完成后,重新构建应用镜像,更新ECS任务定义并部署新版本服务即可。
注意事项
- SSL证书:如果使用HTTPS,确保ALB关联的ACM证书包含
oldurl.com和newurl.com(可申请多域名证书)。 - 验证测试:配置完成后,访问
oldurl.com/this/path及带参数的路径(如oldurl.com/this/path?foo=bar),确认是否正确跳转到对应新域名路径。 - SEO优化:使用301永久重定向后,建议在搜索引擎管理平台(如Google Search Console)提交域名变更请求,加快权重转移。
内容的提问来源于stack exchange,提问作者oluwatyson
相关产品推荐
相关产品推荐

