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

如何通过API Gateway重定向到新域名并保留URL参数?

解决方案

AWS API Gateway 原生支持保留完整URL路径、查询参数的重定向,无需额外部署后端服务,通过内置映射变量拼接Location响应头即可实现。

你当前配置无法携带参数的核心原因是method.response.header.Location配置了硬编码的固定地址'https://tmmwith.us/',所有请求都会被直接跳转到根路径,自然不会保留原请求的路径和查询参数。

具体修改步骤如下:

  • 先确认API资源路径配置为{proxy+}通配符路径,同时绑定你需要支持的HTTP方法(建议选ANY覆盖所有方法),确保网关能捕获所有路径的请求。
  • 在方法响应配置中,为301状态码提前声明Location为合法响应头,否则映射规则会触发校验报错。
  • 修改mock集成的响应参数映射规则,用API Gateway内置变量拼接目标跳转地址,替换原有硬编码值。

修改后的集成配置片段如下:

"x-amazon-apigateway-integration": {
    "type": "mock",
    "responses": {
        "301": {
            "statusCode": "301",
            "responseParameters": {
                "method.response.header.Location": "'https://www.example.com' + $context.path + ($input.params().querystring == '' ? '' : '?' + $input.params().querystring)"
            }
        }
    },
    "requestTemplates": {
        "application/json": "{\"statusCode\": 301}"
    },
    "passthroughBehavior": "when_no_match"
}

配置说明:

  • $context.path会自动获取原请求的路径部分,比如示例中的/articles/fun-article
  • $input.params().querystring会自动获取原请求的完整查询字符串,比如示例中的source=google&something=else,没有查询参数时该值为空,通过三元判断决定是否拼接前缀?
  • 变量自带URL编码处理,不需要额外做转义配置
注意事项
  • 以上配置完全适配AWS::ApiGateway::RestApi资源类型,不需要引入其他服务。
  • 配置更新后需要重新部署API阶段才能生效,生效延迟通常在1分钟以内。
  • 测试时建议优先用curl等命令行工具,避免浏览器缓存301重定向结果导致测试不准,测试命令参考:curl -v https://你的API网关入口地址/测试路径?测试参数=1,查看返回头中的Location值是否符合预期。

内容的提问来源于stack exchange,提问作者David Gatti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 22:03:23