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

如何配置Route 53条件重定向?实现带通配符的URL转发

Route53 路径级条件重定向实现方案

首先明确:Route53本身只支持域名级重定向,没法直接处理带路径参数(比如你说的*唯一标识符)的URL规则,必须结合CloudFront或者S3静态网站托管才能实现路径匹配与转发。

一、实现https://mydomain/list/*/request到https://newdomain/archive/list/*/request的重定向

推荐用CloudFront配合CloudFront Functions来搞定,步骤如下:

1. 配置CloudFront分配

  • 创建针对mydomain的CloudFront分配,源可以指向一个空的S3静态网站桶(我们只用来做重定向,不需要实际内容)。
  • 在分配的行为设置里,新增一条路径模式为/list/*/request的行为。

2. 写CloudFront函数处理重定向

创建一个CloudFront函数,代码逻辑如下:

function handler(event) {
    const request = event.request;
    const uri = request.uri;
    
    // 提取路径里的唯一标识符,比如从/list/xxx/request里拿到xxx
    const matchResult = uri.match(/^\/list\/(.*)\/request$/);
    if (matchResult) {
        const uniqueId = matchResult[1];
        return {
            statusCode: 302, // 要是需要永久重定向就换成301
            statusDescription: 'Found',
            headers: {
                location: {
                    value: `https://newdomain/archive/list/${uniqueId}/request`
                }
            }
        };
    }
    
    // 不匹配的请求按原路径走(也可以返回404,看你需求)
    return request;
}
  • 把这个函数关联到刚才创建的CloudFront行为上,触发类型选「Viewer Request」。

3. 关联Route53记录

在Route53里,把mydomain的A/AAAA记录设置为CloudFront分配的域名,开启别名模式就行。

二、关于“转发所有包含/结尾为request的URL”的支持

用CloudFront+函数完全可以实现这类规则:

  • 匹配结尾为request的URL:把函数里的正则改成/^.*\/request$/,提取完整路径后拼到新域名对应位置即可。
  • 匹配包含request的URL:正则换成/request/就行,但要注意避免误匹配(比如路径里有request字符串的其他场景),可以加更具体的限制(比如/.*request.*/)来精准匹配。

如果用S3静态网站托管的重定向规则,也能实现简单的路径匹配,但灵活性不如CloudFront函数:

  • 比如设置S3重定向规则:
    <RoutingRules>
      <RoutingRule>
        <Condition>
          <KeyPrefixEquals>list/</KeyPrefixEquals>
          <HttpErrorCodeReturnedEquals>200</HttpErrorCodeReturnedEquals>
        </Condition>
        <Redirect>
          <HostName>newdomain</HostName>
          <ReplaceKeyPrefixWith>archive/list/</ReplaceKeyPrefixWith>
          <HttpRedirectCode>302</HttpRedirectCode>
        </Redirect>
      </RoutingRule>
    </RoutingRules>
    
    这种方式能匹配所有/list/开头的路径,重定向到newdomain/archive/list/开头的路径,但没法精准匹配结尾为request的场景,适合规则简单的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:12:56