DISCUZ站长如果使用CDN请注意啊该问题存在于任何CDN产品
[i=s] 本帖最后由 rar9 于 2012-3-12 13:00 编辑 [/i]使用CDN后Discuz!论坛提示”抱歉,你的IP地址不在被充许…”的解决方案
该问题导致的结果:
1.DZ论坛可能无法获得用户的真实IP,导致某些用户IP显示的是CDN节点的IP
2.论坛访问量过大的话,可能会导致用户访问时提示“抱歉,您的 IP 地址不在被允许,或您的账号被禁用,无法访问本站点”
解决方法(DZ X2为例):
打开DZ /source/class/class_core.php 文件
找到第341行,或者搜索“HTTP_CLIENT_IP”,找到如下代码:
[color=#ff0000]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'];[/color]
[color=#ff0000]} else[/color]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'],
[color=#ff0000]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[/color]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:
临时注释加红部分,也就是比原来的代码多了二对注释符(/*和*/)即将上面的代码修改成:
[color=#ff0000]/*
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
*/[/color]
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'],
[color=#ff0000]/*
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
*/[/color]
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部分,这种版本,您只需要删除或注释第一部分即可 顶一个~,我去尝试下 我也设置一下,刚建站访问量还不大,没出现楼主说的情况 感谢rar9的分享,暂时还未见过此问题。 [b]回复 [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=4594&ptid=1525]1#[/url] [i]rar9[/i] [/b]
我刚用,还不知道会出现什么问题。 我先收藏,以后需要的时候在来看,先感谢下你~ 我有客户也遇到了,他就是用的CDN 就有这问题!
页:
[1]