前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何解决WordPress开启CDN后评论IP不正确的方法

如何解决WordPress开启CDN后评论IP不正确的方法

作者头像
文曦
发布2022-06-09 15:30:50
6190
发布2022-06-09 15:30:50
举报
文章被收录于专栏:壳屋栏博客专栏

前言

只是简单的这个还没有事情,只是,Wordpress内有评论IP拦截等等这些功能,不能都拦截了。

百度一下,发现了一个好的方法。只要添加一段代码,IP地址就可以正常了,其实CDN在头部应该有把访问者IP发送的,那段代码就是把wordpress的ip中变量换成$_SERVER获取的。这个可以用在任意CDN和反代里面,IP地址可以获取正确的

用过CDN的朋友都知道,如果WordPress开启CDN之后别人在你的文章中评论,IP则显示的是该人所在地区的CDN节点的IP,而不会显示该人的真实IP,这样的话其实不会有很大的问题,不过对于垃圾评论过多的网站来说,这无疑是一个噩梦,因为不可以进行IP拦截。

解决办法(一)

本人之前在网上找了很多的方法,之后在网上找到了如下的解决办法,把改代码加入到wp-config.php的<?php之后,之前一直都不适用,后来经过反复调试发现是参数调取错误。 源代码如下

代码语言:javascript
复制
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}

我们要把里面的

代码语言:javascript
复制
HTTP_X_FORWARDED_FOR

更改成为自己所用的CDN的来源IP端口,例如百度智能云的就为

代码语言:javascript
复制
HTTP_X_REAL_IP

百度智能云控制版面-获取真实用户IP设置

所有我们调用百度智能云的来源IP的时候在wp-config.php中就应该这样写:

代码语言:javascript
复制
if(isset($_SERVER['HTTP_X_REAL_IP'])) {
$list = explode(',',$_SERVER['HTTP_X_REAL_IP']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}

解决办法(二)

根据上面的参数,我们也可以得出下方的方法,在主题的functions.php中底部添加以下代码:

代码语言:javascript
复制
function GetIP()
{$IP = str_replace(“, “, “”,str_replace($_SERVER['REMOTE_ADDR'],
“”,$_SERVER["HTTP_X_REAL_IP"]));
if ($_SERVER["HTTP_X_REAL_IP"] != “”) {$_SERVER['REMOTE_ADDR'] =
$IP;
} else {
$_SERVER['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];
}}add_action( ‘init’, ‘GetIP’ );

两种方式,只需要使用其中一种即可,第一种适用于所有Wordprss博客,第二种,可能不适用于部分博客,请自主选择。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 解决办法(一)
  • 解决办法(二)
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档