标题:
[教程]
DISCUZ站长如果使用CDN请注意啊该问题存在于任何CDN产品
[打印本页]
作者:
rar9
时间:
2012-3-12 12:57
标题:
DISCUZ站长如果使用CDN请注意啊该问题存在于任何CDN产品
本帖最后由 rar9 于 2012-3-12 13:00 编辑
使用CDN后Discuz!论坛提示”抱歉,你的IP地址不在被充许…”的解决方案
该问题导致的结果:
1.DZ论坛可能无法获得用户的真实IP,导致某些用户IP显示的是CDN节点的IP
2.论坛访问量过大的话,可能会导致用户访问时提示“抱歉,您的 IP 地址不在被允许,或您的账号被禁用,无法访问本站点”
解决方法(DZ X2为例):
打开DZ /source/class/class_core.php 文件
找到第341行,或者搜索“HTTP_CLIENT_IP”,找到如下代码:
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } else
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],
方法1:
删除加红的部分
方法2:
临时注释加红部分,也就是比原来的代码多了二对注释符(/*和*/)即将上面的代码修改成:
/*
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else
*/
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],
/*
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; }else
*/
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],
部分版本的Discuz!该文件中没有加红的第2部分,这种版本,您只需要删除或注释第一部分即可
作者:
vv768
时间:
2012-3-13 00:11
顶一个~,我去尝试下
作者:
soukey
时间:
2012-3-13 18:02
我也设置一下,刚建站访问量还不大,没出现楼主说的情况
作者:
jinco
时间:
2012-3-14 10:32
感谢rar9的分享,暂时还未见过此问题。
作者:
rxhongchen
时间:
2012-4-2 09:53
回复
1#
rar9
我刚用,还不知道会出现什么问题。 我先收藏,以后需要的时候在来看,先感谢下你~
作者:
65design
时间:
2012-4-22 02:18
我有客户也遇到了,他就是用的CDN 就有这问题!
欢迎光临 WDlinux官方论坛 (http://wdlinux.cn/bbs/)
Powered by Discuz! 7.2