640X60广告位招租 qq245909083

Discuz X3.* 使用CDN/反向代理开启 SSL / HTTPS 后需解决的问题

分享时间:2020-03-08 213 热度℃
当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地址。
返回顶部