我可以在wordpress中获取针对地理位置定位的cloudfront-view-country请求吗?

时间:2018-03-08 00:17:14

标签: wordpress lambda amazon-cloudfront request-headers ip-geolocation

我需要在wordpress中访问我网站的每个用户的地理信息,以便提供正确的当前信息。使用cloudfront后,WC_Geolocation无法正常工作。我在考虑从cloudfront请求中选择cloudfront-view-country标头到我的服务器。我测试了以下两种方法,但没有得到我的预期。

  1. 将cloudfront-view-country添加到白名单标题。使用getallheaders()来读取functions.php中wordpress中的请求标头,但是没有找到预期的标头cloudfront-view-country。 Whitelist Headers 在functions.php中的片段
  2. $headers =  getallheaders();
    
    foreach($headers as $key=>$val){
    echo $key . ': ' . $val . '<br>'
    }
    
    1. 我使用lambda + API网关,将CloudFront-Viewer-Country传递给Body Mapping模板中的lambda
    2. detect_countryCode": "$input.params('CloudFront-Viewer-Country')
      
      catch the countryCode with event in lambda
      
      exports.handler = (event, context, callback) => {
      
        let countryCode = event.detect_countryCode;
      
        callback(null, countryCode)
      };
      

      当我在浏览器中使用API​​进行测试时,它确实显示了正确的国家/地区代码。但是,在我使用wp_remote_get()在wordpress中集成此API之后。它始终显示&#34;美国&#34;这是我服务器的位置。我认为第二种方法的逻辑是错误的。这是我的服务器调用API,当然它将返回我的服务器的国家代码,该代码位于&#34; US&#34;。

      任何意见都将不胜感激。

      谢谢。

0 个答案:

没有答案