在Magento上使用X-Forwarded-For标头

时间:2013-05-14 12:10:39

标签: php apache magento google-pagespeed

所以这是交易:

我们正在努力设置Google Page Speed与Magento合作,我们担心由于所有网页都将由Google提供,因此我们无法知道用户请求的客户端IP地址。我们担心这会影响我们的用户与网站互动的能力(登录/退出和结账)以及我们使用分析的能力(Google Analytics)。这真的会成为一个问题/问题吗?

我们做了一些研究,发现我们需要在Apache或PHP中设置X-Forwarded-For标头。我们的主人说他们不能这样做是因为:

  

通常我们会使用mod_rpaf来做你想要的(在转发到你的代码之前将转发的IP转换成真正的IP)但mod_rpaf要求你提供转发服务器列表。 Google不提供此功能,因此我们无法使用它。

所以现在唯一的选择是用Magento的PHP设置它,我们该怎么做?

在浏览Magento管理员(系统>配置>网络>会话验证设置)时,我们注意到“验证HTTP_X_FORWARDED_FOR”:是否会将此更改为“是”帮助?

-Thanks。

1 个答案:

答案 0 :(得分:0)

Google页面Speed将在它发送给magento的请求中设置http_x_forwarded_for标头,这意味着magento可以使用PHP来获取它,如下所示:

$real_customer_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

Magento 捕获通过http_x_forwarded_for标头传递的ip信息,而无需额外配置。

要对此进行测试,请使用Google Page Speed设置您网站的测试实例并下订单。然后,如果您检查订单,则会看到它具有“远程邮件”和“远程邮件”的值。和' x_forwarded_for'。这些值存储在magento的MySQL数据库中,在' sales_flat_order'表

客户的IP地址与magento的登录/注销/结账功能无关,它使用存储在http会话中的信息。