• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    DEDECMS开启SSL及支持多站点后缩略图错误变成域名重复绝对地址的取消方法
    POST TIME:2021-05-23 02:05

    DEDECMS如果我们需要将不同目录绑定不同二级域名或者不同域名作为多站点使用,就需要开启系统设置里面的多站点支持功能,这样整站的附件图片,都会被自动加上主站的域名,比如原来文章中的/upload/allimg/1709/234214324.JPG这样形式的相对路径就会被自动替换成https://www.bnxb.com/upload/allimg/1709/234214324.JPG这种形式的绝对路径。

    但是我们在使用中也发现目前版本的DEDE(5.7 SP2)存在一个BUG问题,开启后,因为文章中发布的图片都变成绝对地址,因此缩略图被自动提取后,也变成了绝对地址,但是在栏目页或者首页引用缩略图的时候,DEDE系统因为你开启了多站点支持因此又会在原来缩略图的外面再多套一个你的域名,就会使缩略图变成类似

    所以后面发布的文章,缩略图就会全部无法显示。虽然我们可以用系统里面的批量维护-数据库内容替换 功能来将缩略图中的域名全部去掉,但是每次发布文章都要操作一次很麻烦,这里提供一个暂时的解决办法

     

    修改DEDE/INC/inc_archives_functions.php

     

    /**
    
     *  取第一个图片为缩略图
    
     *
    
     * @access    public
    
     * @param     string  $body  文档内容
    
     * @return    string
    
     */
    
    function GetDDImgFromBody(&$body)
    
    {
    
        $litpic = '';
    
        preg_match_all("/(src)=["|'| ]{0,}([^>]*.(gif|jpg|bmp|png))/isU",$body,$img_array);
    
        $img_array = array_unique($img_array[2]);
    
        if(count($img_array)>0)
    
        {
    
            $picname = preg_replace("/["|'| ]{1,}/", '', $img_array[0]);
    
            if(preg_match("#_lit.#", $picname)) $litpic = $picname;
    
            else $litpic = GetDDImage('ddfirst', $picname,1);
    
        }
    
        return $litpic;
    
    }
    


     

     

     

    修改为

     

    查看源码
    
    打印代码帮助
    
    /**
    
     *  取第一个图片为缩略图
    
     *
    
     * @access    public
    
     * @param     string  $body  文档内容
    
     * @return    string
    
     */
    
    function GetDDImgFromBody(&$body)
    
    {
    
    global $cfg_basehost;
    
        $litpic = '';
    
        preg_match_all("/(src)=["|'| ]{0,}([^>]*.(gif|jpg|bmp|png))/isU",$body,$img_array);
    
        $img_array = array_unique($img_array[2]);
    
        if(count($img_array)>0)
    
        {
    
            $picname = preg_replace("/["|'| ]{1,}/", '', $img_array[0]);
    
            if(preg_match("#_lit.#", $picname)) $litpic = $picname;
    
            else $litpic = GetDDImage('ddfirst', $picname,1);
    
        }
    
    $litpic = str_replace($cfg_basehost,"",$litpic);
    
        return $litpic;
    
    }
    

    意思是只要缩略图中出现你网站的域名就自动去除。问题解决

    其实就是增加了两行代码,

    global $cfg_basehost;

    $litpic = str_replace($cfg_basehost,"",$litpic);
    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!