Discuz X3.* 使用CDN/反向代理开启 SSL / HTTPS 后需解决的问题
分类 网站技术/村民张先生 发布于 2017-09-20 21:51
当Discuz X3.*前端架设了反向代理服务器,且反向代理服务器上开启了SSL,而代理与源站间使用HTTP协议通信时,页面上的AJAX仍然会请求HTTP地址,导致被浏览器阻止,无法提交回帖、无法弹出管理窗口等。
我们可以进行以下修改,使AJAX正确请求HTTPS地址。
打开 source/class/discuz/discuz_application.php 文件,查找:
$_G['siteurl'] = dhtmlspecialchars('http'.($_G['isHTTPS'] ? 's' : '').'://'.$_SERVER['HTTP_HOST'].$sitepath.'/');
替换为:
$_G['siteurl'] = dhtmlspecialchars('http'.($_G['isHTTPS'] || in_array($_SERVER['REMOTE_ADDR'], array('代理服务器IP','代理服务器IP')) ? 's' : '').'://'.$_SERVER['HTTP_HOST'].$sitepath.'/');
请注意,如果你的代理服务器有多个IP地址,请填写其请求源站时的主IP地址。
更多相关内容:
https://www.zhang.cq.cn/wenzhang-1587.html
https://www.zhang.cq.cn/wenzhang-1419.html
欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截