在用DEDECMS做一個網(wǎng)站的過程中,需要將某個欄目綁定二級域名,過程中遇到一個問題,就是所有的圖片都無法顯示。
查看源代碼,發(fā)現(xiàn)dedecms的圖片地址默認(rèn)的是相對鏈接地址!這樣瀏覽器訪問的過程中就會將地址自動補全為二級域名開頭
比如其中有一段內(nèi)容是
<img alt="" src="/uploads/170622/1-1F6221431393M.png" style="width: 957px; height: 446px;" />
實際圖片存放的地址應(yīng)該是https://www.bnxb.com/uploads/170622/1-1F6221431393M.png
在二級域名訪問時候瀏覽器就將相對鏈接變成了https://host.bnxb.com/uploads/170622/1-1F6221431393M.png 因此無法顯示
這個情況發(fā)生在我已經(jīng)在后臺系統(tǒng)設(shè)置-核心設(shè)置中啟用了 (是/否)支持多站點,開啟此項后附件、欄目連接、arclist內(nèi)容啟用絕對網(wǎng)址 的情況下,因此只能修改程序文件來實現(xiàn)。
要完美的解決這個問題,有兩個問題需要修改。一是今后上傳的圖片都自動變成絕對地址,這樣所有的二級域名包括綁定的二級目錄都可以自動訪問了;二是以前上傳的圖片修改為絕對地址,否則以前的圖片還是不能訪問的。
完美解決dedecms綁定二級域名(包括二級目錄綁定域名)圖片附件無法顯示-更換所有圖片和附件地址為絕對地址的方法:
特別提醒:對程序和數(shù)據(jù)庫做任何修改前請都先備份,出問題了好還原!一定要備份哦!
1、修改圖片上傳路徑為絕對地址:(從修改起開始生效,以前的圖片無效)
找到 \include\dialog\select_images_post.php 第108行(行數(shù)不一定準(zhǔn)確,有的軟件打開有空行)
$fileurl = $activepath.'/'.$filename;
換成:
$fileurl = $cfg_cmsurl.$activepath.'/'.$filename;
修改后,所有上傳的圖片都是絕對地址保存。但是以前的文章的圖片還是相對地址的。
2、數(shù)據(jù)庫批量替換以前的圖片地址為絕對地址:
特別提醒:新手對數(shù)據(jù)庫操作要小心,替換前一定要記得備份然后再操作,否則出問題了后悔莫及啊!dedecms可以在后臺備份數(shù)據(jù)。
操作方法:織夢后臺——核心——批量維護(hù)——數(shù)據(jù)庫內(nèi)容替換:
然后選擇表dede_addonarticle(一般就是第一個表) 字段 body(存放文章正文的字段)。
被替換內(nèi)容: src="/uploads/
替換為:src="https://www.bnxb.com/uploads/(換成你自己的域名)
請仔細(xì)檢查上量替換的內(nèi)容,防止有誤,操作最好截圖,出錯了知道如何替換回去。
然后替換即可!替換后假如是靜態(tài)內(nèi)容,可以生成一下所有文章,動態(tài)內(nèi)容無需生成。
數(shù)據(jù)庫替換后,建議檢查以前文章的圖片地址是否變成了絕對地址,以及地址是否出錯!假如有問題,請還原數(shù)據(jù)庫。
好了,完成這一步,以后你所有的二級域名都可以自動顯示主域名的所有圖片了!