最新消息:

VPS前后端分离使WordPress无法记录访客IP解决之法

个人宝藏 澄色香味 157浏览 1评论

最近换了服务器看了下评论,发现所有评论的ip都是127.0.0.1。因为前后端分开了,当客户端请求访问动态页面时会被前端反向代理给后端处理,所以Wordpress读到的是localhost。。。为了解决,只能让WP更智能一点,录入真实访问IP (而不是请求IP)。

解决办法,在wp-config.php 的第2行(即<?php之后),添加


if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];}

$_SERVER[‘HTTP_X_FORWARDED_FOR’]$_SERVER[‘REMOTE_ADDR’]都是用于获取客户端IP的,全局变量,因此可以直接调用。
$_SERVER[‘REMOTE_ADDR’]是正在浏览当前页面用户的 IP 地址,由于服务器自身启用了反向代理,所以这个变量始终记录IP为127.0.0.1。
$_SERVER[“HTTP_X_FORWARDED_FOR”]用于获取使用代理服务器用户的IP,但有时读取的仍然是代理服务器本身的IP。
因为X-Forwarded-For头的记录格式是:client1,proxy1,proxy2,所以在上面的代码中我们取的是第一个值。

转载请注明:SkyTs » VPS前后端分离使WordPress无法记录访客IP解决之法

发表我的评论
取消评论

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 吧唧吧唧
    黄昏电车7年前 (2013-03-16)回复