随着互联网技术的不断发展,越来越多的网站开始采用HTTPS协议以确保数据传输的安全性。然而,在使用DEDECMS发布文章时,可能会遇到一个问题:对于HTTPS协议的远程图片无法实现本地化处理。本文将详细介绍如何解决这一问题,帮助您的站点更高效地管理图片资源。

 

第一步:修改相关文件

首先,我们需要找到并编辑dede/inc/inc_archives_functions.php文件(注意:这里的“dede”是您的后台目录名称)。在该文件中定位到GetCurContent($body)函数。

接下来,将以下代码:


preg_match_all("/src=[\\\\"|’|\\\\s]{0,}(http:\\\\/\\\\/([^>]*)\\\\.(gif|jpg|png|jpeg|bmp))/isU",$body,$img_array);
$img_array = array_unique($img_array[1]);
    

替换为:


preg_match_all("/src=[\\\\"|’|\\\\s]{0,}(http:\\\\/\\\\/([^>]*)\\\\.(gif|jpg|png|jpeg|bmp))/isU",$body,$img_array);
preg_match_all("/src=[\\\\"|’|\\\\s]{0,}(https:\\\\/\\\\/([^>]*)\\\\.(gif|jpg|png|jpeg|bmp))/isU",$body,$img_array_https);
$img_array = array_unique($img_array[1]); 
$img_array_https = array_unique($img_array_https[1]); 
$img_array=array_merge_recursive($img_array,$img_array_https);
    

第二步:调整条件判断逻辑

继续寻找以下代码片段:


if(!preg_match("#^http:\\\\/\\\\/#i", $value))
{
    continue;
}
    

将其修改为:


if(!preg_match("#^http:\\\\/\\\\/#i", $value)&&!preg_match("#^https:\\\\/\\\\/#i", $value))
{
    continue;
}
    

完成上述两步后,请保存文件并重新上传至服务器。至此,您已经成功解决了DEDECMS中HTTPS远程图片无法本地化的问题。

 

需要注意的是,如果您使用的DEDECMS版本低于5.7(如5.5或5.1),那么解决方案可能会有所不同。在这种情况下,建议您及时联系技术支持人员获取进一步的帮助。

通过以上方法,您可以确保无论是HTTP还是HTTPS协议下的远程图片都能顺利进行本地化处理,从而提高网站性能和用户体验。