discuz X3.2在系統(tǒng)上是支持https的,不過需要手動(dòng)修改幾個(gè)地方。首先確保服務(wù)器端已開啟https,且正確配置了SSL證書。
discuz X3.2開啟支持https主要需要修改一下幾個(gè)地方:
1、查找修改文件discuz_application.php :(適用于nginx+pfm環(huán)境)
source/class/discuz/discuz_application.php (約第 187 行處): 查找:
$_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
修改為:
$_G['isHTTPS'] = ($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
2、查找修改文件avatar.php :
uc_server/avatar.php (約第 13 行處)查找:
define('UC_API', strtolower(($_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
修改為:
define('UC_API', strtolower(($_SERVER['SERVER_PORT'] == 443 || $_SERVER['HTTPS'] == 'on' ? 'https' : 'http').'://'.$_SERVER['HTTP_HOST'].substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'))));
3、除去非 HTTPS 內(nèi)容避免提示”不安全內(nèi)容“
Source/plugin/manyou/Service/DiscuzTips.php ,最后的那段 JS 加載腳本刪除就行。
非樓主層如果有點(diǎn)評,那么點(diǎn)評者頭像不是 HTTPS 開頭,也需要修改一個(gè)文件來適配: template/default/forum/viewthread_node_body.htm (約 180 行),搜索 div class="psta vm">,將下面一行注釋掉或者刪除。
打開瀏覽器,使用開發(fā)者工具或者查看源碼逐一排查加載的非 HTTPS 資源并修改。
4、后臺(tái)設(shè)置的修改完善
在后臺(tái)還有一些設(shè)置,可能會(huì)干擾 https 的使用。
后臺(tái) >全局 > 站點(diǎn) URL ,改為 https 開頭的
后臺(tái) > 站長 > UCenter 設(shè)置 > UCenter 訪問地址,修改為 https 開頭的
UCenter 后臺(tái) > 應(yīng)用管理 > 應(yīng)用的主 URL ,修改為 https 開頭。
修改后可能會(huì)顯示通訊失敗,如果 UC 和論壇程序安裝在同一機(jī)器,此失敗可無視,實(shí)測可以和 UC 正常通訊不影響(測試是否正常通訊程序的 Bug ),如果 UC 和論壇程序不在一臺(tái)機(jī)器上,有可能不能通訊。 另外在 后臺(tái) > 全局 > 域名設(shè)置 中的一些設(shè)置也可能使 https 失效,如果更新緩存后論壇默認(rèn)連接還是 HTTP ,請刪除 后臺(tái) > 全局 > 域名設(shè)置 > 應(yīng)用域名 > 默認(rèn) 里面的默認(rèn)域名(一般去 forum.php 尾巴這里會(huì)有內(nèi)容,為了 HTTPS 請刪除)。
5、模板的調(diào)整
主要在模板的 foot.html 以及 header.html 等文件中,使用工具逐一排查模板文件中寫死的 HTTP 鏈接,修改為 HTTPS 。
到此,discuz X3.2已經(jīng)開啟支持https了 。
當(dāng)然,你還需要申請SSL證書、在服務(wù)器端部署SSL證書。