iT邦幫忙

1

【請教】XOOPS 2.0.10 改 HTTPS 版型不正常

各位熱心的高手大大們:

由於 HTTPS 已經成為主流,印象中連 Google 都來信通知小弟,將會在小弟的 HTTP 網站加註「不安全」,於是小弟就試試看,申請了 CloudFlare 免費版的服務,使用它的 HTTPS 來提供加密;但網站卻因此版型跑掉,不知道有沒有 XOOPS 高手可以指點一下,謝謝!

小弟的網站如下:
HTTP 版本 ==>版型可以正常顯示
以及
HTTPS 版本 ==>版型歪掉,不正常

看更多先前的討論...收起先前的討論...
weiclin iT邦高手 4 級 ‧ 2017-10-18 12:31:11 檢舉
先把開發者工具開下去看看哪些檔案下載失敗
樓上巷子內的XD,因為瀏覽器可能會要求你所有檔案(CSS JS 等等) 都用 HTTPS 所以可能會有些檔案沒成功載入進來導致破版~
terryliu iT邦新手 5 級 ‧ 2017-10-19 14:54:52 檢舉
謝謝 weiclin 的回覆,我看了一下,有兩個:
http://www.prolan.com.tw/xoops.css
http://www.prolan.com.tw/themes/default/styleNN.css
正在看是否能修改,Thanks!!!
bizpro iT邦大師 1 級 ‧ 2017-10-19 16:25:05 檢舉
不是只有這兩個, 幾乎Xoops大部分圖檔都是走相對路徑的(因為存放在資料庫中).

Firefox封鎖"主動"內容, 如css, js:
已封鎖載入混和的主動內容「http://www.prolan.com.tw/xoops.css」
已封鎖載入混和的主動內容「http://www.prolan.com.tw/themes/default/styleNN.css」
已封鎖載入混和的主動內容「http://www.prolan.com.tw/include/xoops.js」

1 個回答

1
bizpro
iT邦大師 1 級 ‧ 2017-10-19 10:50:32

問題是Xoops原始碼有許多相對路徑, HTML程式碼跑到瀏覽器後, 瀏覽器沒有義務自己加上https, 除非以下兩種解法, 建議第一種:

  1. 您是使用Nginx, 因此建議啟用反向代理, 用301重導將所有的HTTP強制轉為HTTPS. 並設定HSTS(HTTP Strict Transport Security).
  2. 修改Xoops原始碼, 將相對URL改為https://絕對路徑.
terryliu iT邦新手 5 級 ‧ 2017-10-19 15:00:08 檢舉

請問 bizpro 大:
小弟用的是 Apache Server,是否可以用 .htaccess 來讓 http 轉為 https 呢?

bizpro iT邦大師 1 級 ‧ 2017-10-19 16:19:10 檢舉

對, 您跑Xoops的是Apache/2.0.40 (Red Hat Linux). 這版本太舊了.
因為您使用cloudflare CDN, 那是Nginx. 也許可以在cloudflare那強制:
https://support.cloudflare.com/hc/en-us/articles/227227647-How-do-I-use-Automatic-HTTPS-Rewrites-
如果不行, 那就修改Xoops.

我要發表回答

立即登入回答