aws cloudfront redirect www to non-www with lambda

'use strict';

exports.handler = (event, context, callback) => {
    var rawJson = JSON.stringify(event);
    var searchMask = '"host"';
    var regEx = new RegExp(searchMask, "ig");  
    var replaceMask = '"Host"';

    rawJson = rawJson.replace(regEx, replaceMask);
    event = JSON.parse(rawJson);
    
    const request = event.Records[0].cf.request;
    var str = request.headers.Host[0].value;

    if (str.startsWith("www.") && !str.endsWith('.cloudfront.net')) {
        var updatedHost = str.replace("www.","");

        var location = "https://" + updatedHost + request.uri;
      
        const response = {
            status: '301',
            statusDescription: '301 Found',
            headers: {
                location: [{
                    key: 'Location',
                    value: location,
                }],
            }
       };
       
       console.log(JSON.stringify(response));
       callback(null, response);
       return;
    }
    
    callback(null, request);
};
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "edgelambda.amazonaws.com",
          "lambda.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

 

转载于:https://my.oschina.net/bobchow/blog/3056592

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值