如何給Discuz! X3.1/3.2 開啟https,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、秦州ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的秦州網(wǎng)站制作公司
教你如何給 Discuz! X3.1/3.2 開啟https(SSL)支持! – HTTPS SSL 教程
DZ作為社區(qū)交流系統(tǒng):1. 對高版本 PHP 兼容不佳 2. 對 HTTPS 兼容不佳 3.目前官方?jīng)]有推出一鍵切換方案,那么我們要解決這個問題只能自己動手了。
1、SSL證書&配置
首先,要開啟SSL,總得有一個證書吧?無論是正規(guī)CA頒發(fā)的,還是自己簽的,沒有肯定是不行的。如果沒有的話,先去申請個吧。(具體方法請谷歌,這里不再贅述)
2、Discuz! 優(yōu)化
2.1、程序調(diào)整
自 Discuz! X3 開始,已經(jīng)加入了對https的支持,如果你使用https訪問論壇,論壇中的鏈接都會變成https。如果你發(fā)現(xiàn)大部分鏈接都已經(jīng)使用了https,就代表Discuz已經(jīng)自動識別了,此時,可以跳過本步,直接進入下一步。
Discuz采用 $_SERVER[‘HTTPS’] 的方式來判斷SSL,但是因為vps架構(gòu)問題(nginx+php-fpm),無法采用這種方式識別,所以需要對Discuz程序進行一些調(diào)整(使用 $_SERVER[‘SERVER_PORT’] 來判斷)。
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; |
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’], ‘/’)))); |
修改過后,更新緩存,發(fā)現(xiàn)大多數(shù)鏈接都變成了https。
2.2、后臺設(shè)置
在后臺還有一些設(shè)置,可能會干擾https的使用
后臺 > 站長 > UCenter設(shè)置 > UCenter 訪問地址,修改為https開頭的
UCenter后臺 > 應(yīng)用管理 > 應(yīng)用的主URL,修改為https開頭
另外在 后臺 > 全局 > 域名設(shè)置 中的一些設(shè)置也可能使https失效,如果進行了之前的幾步還是無法啟用,可以暫時刪除這里的設(shè)置試試。
3、清理緩存
設(shè)置完成之后,需要清理緩存,使設(shè)置生效。
清理緩存及內(nèi)存緩存,如果設(shè)置了帖子緩存,還需清理數(shù)據(jù)庫內(nèi)的緩存(清空相應(yīng)cache數(shù)據(jù)庫,或者靜等緩存失效)
總結(jié),目的就是修改HTTP頭改成HTTPS。
至此,Discuz https啟用成功,當(dāng)然,在訪問某些頁面的時候,可能鎖會打上叉。因為頁面中加載了其他http內(nèi)容??赡苁墙y(tǒng)計代碼、QQ分享代碼、QQ秀頭像等,這部分服務(wù)暫時沒有提供https協(xié)議,因而無法啟用。只能等待Discuz進一步支持https。
關(guān)于如何給Discuz! X3.1/3.2 開啟https問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。