侧边栏壁纸
博主头像
背锅小王子博主等级

我从事运维工作有十年之久,主要从事云原生相关的工作,对k8s、devops、servicemesh、可观察性等较为熟悉!

  • 累计撰写 59 篇文章
  • 累计创建 64 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录
AWS

CloudFront配置301跳转

背锅小王子
2022-07-29 / 0 评论 / 0 点赞 / 260 阅读 / 275 字
温馨提示:
本文最后更新于 2022-11-14,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1、需求介绍

希望支持如下链接的301跳转:

/en 跳转 /newRegister/en

/zh 跳转 /newRegister/zh

2、通过cloudfront的函数来实现

因为cloudfront只支持http到https的跳转,所以要实现301跳转,就需要借助函数来实现,由于需求不是太复杂,所以直接使用cloudfront自带的函数功能,就可以实现一个通用的模板http-redirect,具体函数代码如下:

function handler(event) {
  var request = event.request;
  var rewrites = [
    ['/cn','/newRegister/cn'],
    ['/en','/newRegister/en']
  ]

  for (var arrayIndex in rewrites){
    if (request.uri == rewrites[arrayIndex][0]) {
      var newUri = rewrites[arrayIndex][1];

      var response = {
        statusCode: 301,
        statusDescription: 'Permanently moved',
        headers: {
          "location": { "value": newUri }
        }
      }
      return response;
    }
  }
  return request;
}

后期又有其他需求的301跳转时,只需要将跳转的路径,加到rewrites这个数组里面即可。

3、添加函数到cloudfront

在cloudfront中找到需要做301跳转的域名,进入行为,在函数关联里面,找到cloudfront functions,函数选择我们创建的http-redirect这个即可。
图片-1658491563705

0

评论区