WordPress使用CDN加速后不能获取访客真实IP的解决办法
网站使用了CDN加速后,一是可以给用户带来最快的浏览体验,二来是可以保护源站,但是使用CDN加速也暴露了一些小问题,在看WordPress后台评论的时候,看到的IP都是CDN的IP而不是访客真实IP。例如:网站使用了百度云加速后,后台评论以及重置密码发送的邮件通知都是百度云加速节点的IP,而非访客的真实IP。那么如果遇到有人恶意评论、恶意发邮件试图暴力破解后台密码的时候,总不能直接拦截掉CDN的节点IP吧。那么启用CDN后怎么显示访客真实IP呢?百度到了一段代码,建议收藏
打开站点跟目录/wp-config.php文件,添加代码到文件的第一个<?php
标记下面
/** 使用CDN获取IP */
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
保存修改后的文件,更新WordPress目录中的wp-config.php文件即可!(代码来源于网络)
同理,如果使用的是Typecho
,将此段代码添加到config.inc.php
中即可。
原理分析
WordPress是使用”REMOTE_ADDR”这个函数来获取访客的IP地址的,所以我们只需要将获取的函数替换成”HTTP_X_FORWARDED_FOR”就可以了。
共有 0 条评论