discuz X3.2在系統上是支持https的,不過需要手動修改幾個地方。首先確保服務器端已開啟https,且正確配置了SSL證書。
discuz X3.2開啟支持https主要需要修改一下幾個地方:
1、查找修改文件discuz_application.php :(適用于nginx+pfm環境)
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 內容避免提示”不安全內容“
Source/plugin/manyou/Service/DiscuzTips.php ,最后的那段 JS 加載腳本刪除就行。
非樓主層如果有點評,那么點評者頭像不是 HTTPS 開頭,也需要修改一個文件來適配: template/default/forum/viewthread_node_body.htm (約 180 行),搜索 div class="psta vm">,將下面一行注釋掉或者刪除。
打開瀏覽器,使用開發者工具或者查看源碼逐一排查加載的非 HTTPS 資源并修改。
4、后臺設置的修改完善
在后臺還有一些設置,可能會干擾 https 的使用。
后臺 >全局 > 站點 URL ,改為 https 開頭的
后臺 > 站長 > UCenter 設置 > UCenter 訪問地址,修改為 https 開頭的
UCenter 后臺 > 應用管理 > 應用的主 URL ,修改為 https 開頭。
修改后可能會顯示通訊失敗,如果 UC 和論壇程序安裝在同一機器,此失敗可無視,實測可以和 UC 正常通訊不影響(測試是否正常通訊程序的 Bug ),如果 UC 和論壇程序不在一臺機器上,有可能不能通訊。 另外在 后臺 > 全局 > 域名設置 中的一些設置也可能使 https 失效,如果更新緩存后論壇默認連接還是 HTTP ,請刪除 后臺 > 全局 > 域名設置 > 應用域名 > 默認 里面的默認域名(一般去 forum.php 尾巴這里會有內容,為了 HTTPS 請刪除)。
5、模板的調整
主要在模板的 foot.html 以及 header.html 等文件中,使用工具逐一排查模板文件中寫死的 HTTP 鏈接,修改為 HTTPS 。
到此,discuz X3.2已經開啟支持https了 。