discuz论坛使用CDN后图片不显示及UCenter无法打开的问题解决

作者:美云 发布日期:2012/5/22 21:08:57 浏览次数:8637 复制

    在使用CDN免备案或CDN四线加速后,论坛头像等图片无法显示并且在后台无法设置UCenter,仔细查看,原来是discuz在CDN后安装时在头像图片的链接地址上自动增加了CDN端口号,这样的地址自然无法打开。解决方法如下:

Discuz X2.5和Discuz X3.0的用户:打开文件source\class\discuz\discuz_application.php,查找第223行或如下代码

$_G['siteport'] = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];

修改为:

//$_G['siteport'] = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];

覆盖原文件后更新缓存即可解决。



Discuz X1.5用户,打开文件source/function/function_core.php,查找第1025行或如下代码:

$port = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];

修改成

//$port = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];

覆盖原文件后更新缓存即可解决。



Discuz X2用户,打开文件source/class/class_core.php,查找第359行或如下代码:

$_G['siteport'] = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];

修改成

//$_G['siteport'] = empty($_SERVER['SERVER_PORT']) || $_SERVER['SERVER_PORT'] == '80' ? '' : ':'.$_SERVER['SERVER_PORT'];

覆盖原文件后更新缓存即可解决。

 

注意:如果是在CDN状态下新安装的Discuz论坛,那么还需要修改两处:

1,打开 /config/config_ucenter.php 文件,将define('UC_API', 'http://www.abc.com:2450/uc_server');改为define('UC_API', 'http://www.abc.com/uc_server');

或者登录discuz后台,把UCenter访问地址中:2450的字样去掉后点提交。
例如:把http://bbs.cnlvyo.com:2450/uc_server中的:2450去掉后得到http://bbs.cnlvyo.com/uc_server

2,登录UCenter后台,点上方导航的“UCenter”,再点左侧导航的“应用”,在“Discuz! Board” 行的最右侧点“编辑”,将“应用的主 URL:”网址中的:2450去掉,点“提交”。