从Lambda @ Edge函数获取客户端请求域

问题描述

我正在尝试对HTTP 301重定向执行以下操作,以便网络用户将重定向到其他新闻页面。

    if ((request.uri == "/news") || (request.uri == "/news/") && (request.origin.domainName == "sub.mydomain.com")) {

        
        const redirectResponse = {
            status: '301',statusDescription: 'Moved Permanently',headers: {
                'location': [{
                    key: 'Location',value: '/local-news/',}],'cache-control': [{
                    key: 'Cache-Control',value: "max-age=3600"
                }],},};
        callback(null,redirectResponse);
   
  }

但是,此 request.origin.domainName ==“ mydomain.com” 似乎无法在我的功能中使用。这是选择客户来自哪个域名的正确方法吗?

我认为此 request.origin.domainName 方法仅对 Origin请求不支持 Origin 对象。是否有可能我获得查看器请求的客户端来源域名?

我需要这样做的原因是,我有多个域,用户可以访问相同的CloudFront发行版。因此,当用户来自不同的域时,必须将用户重定向到不同的新闻站点。

有人可以支持我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)