WordPress 开启 CDN 无法获取真实 IP

4,086 0

昨天刚刚开启了评论邮件提醒功能「美化 WordPress 邮件回复样式」,就发现邮件里关于评论者的 IP 居然是错的,WordPress 自己获取了 CDN 的 IP 节点。

这样一来,就不好分析网站访客的地域关系了,而且 WordPress 自带的拦截 IP 评论功能也将会失效,所以我想要解决它。于是我在网上找了一下相关内容,后来在幻杀博客找到了完美的解决方案,下面分享给小伙伴们。

Image

解决方案

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

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 地址是可以获取正确的。

评论

(0)

暂无评论,来说两句吧

发布评论

© 2026 一纸忘忧. 保留所有权利.

一纸忘忧的个人网站,关于技术探索与日常生活,记录 Web 开发、服务端与 DevOps 实践,分享软件工具、数码体验,以及代码之外的见闻与思考。