現在網頁使用https已經是必備的,不使用https會被chrome等瀏覽器到處打壓,因此最近在幫一些舊客戶將網域從http升級https

不過添加了ssl之後,發現到綠鎖頭並沒有出現,導致這問題的原因,來自於當初的圖片路徑都是直接存網址,所以圖片路徑都還是http開頭的。

https只要網頁裡有一項資源不是https,綠鎖頭就不會出現。最近瀏覽器又祭出更狠的規定,如果在https的連線圖片不是https的話,圖片不會顯示。


為了要解決此問題,我們得將資料庫當中的圖片路徑,從http改成https開頭。

以下這個方法只適用於圖片路徑有在資料庫獨立一個欄位,假如圖片路徑是混和其他內容這方法就沒用了...

https-3344700_640.jpg

將http to https 

方法一

將所有http開頭的圖片網址改成https

UPDATE products

     set img_url = REPLACE(img_url, 'http:', 'https:')

     WHERE img_url like 'http:%';

方法二

將圖片網址去除掉http: 開頭,會變成剩下 //blog.aidec.tw/uploads/post/xxxxx.png 這樣的形式。

使用這種方式的好處是可以自動判斷網址是http開頭,還是https開頭的。

UPDATE products

     set img_url = REPLACE(img_url, 'http:', '')

     WHERE img_url like 'http:%';

方法三

只針對特定網域的圖片做修改。例如只把http://blog.aidec.tw 這個網域的圖,更新成https開頭。

UPDATE products

     set img_url = REPLACE(img_url, 'http:', 'https:')

     WHERE img_url like 'http://blog.aidec.tw%';

最後提醒一點,在執行SQL語句時,最好先將資料庫備份,以免執行錯誤!!


文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)

原文連結:
https://blog.aidec.tw/post/mysql-update-http-to-https