正文

昨天刚刚开启了评论邮件提醒功能《美化 WordPress 邮件回复样式》,就发现邮件里关于评论者的ip居然是错的,wordpress自己获取了cdn的ip节点,这样一来,就不好分析网站访客的地域关系了,而且wordpress自带的拦截ip评论功能也将会失效,所以我想要解决它,于是我在网上找了一下相关内容,后来在幻杀博客找到了完美的解决方案,下面分享给小伙伴们。

解决方案

打开wordpress根目录下面 wp-config.php 文件,在文件最下方添加下面的代码

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

原理

在CDN的http头部有记录了访问者IP数据,那段代码就是把 wordpress 的 ip 中变量换成 $_SERVER 获取的,以上的代码可以用在任意CDN和反向代理上面,IP地址是可以获取正确的。

如果觉得我的文章对你有用,请随意赞赏