在使用Dedecms进行内容管理时,确保内容图片和缩略图自动带上绝对域名是一项重要的优化措施。这不仅有助于提高网站的SEO效果,还能确保图片资源在不同环境下的正确加载。本文将详细介绍如何通过修改Dedecms的核心文件实现这一功能。
首先,我们需要对缩略图的上传路径进行调整。打开`include<空格><空格>dialog<空格><空格>select_images_post.php`这个文件,在第108行找到以下代码:
$fileurl = $activepath.'/'.$filename;
将其修改为:
$fileurl = $cfg_basehost.$activepath.'/'.$filename;
这样做的目的是在编辑器上传图片时,自动为图片路径添加域名,形成绝对路径。
接下来,我们需要修改`/dede/inc/inc_archives_functions.php`文件。找到大约第436行的代码:
global $cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;
将其改为:
global $cfg_basehost,$cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;
然后,继续寻找大约第481行的代码:
if($isremote==1 && preg_match("#^http://#i", $picname))
将其修改为:
if(($isremote==1 && preg_match("#^http://#i", $picname)) && !checkstr($picname,$cfg_basehost))
再往下找,大约在第502行的位置:
if(($litpic=='ddfirst' && !preg_match("#^http://#i", $picname))
修改为:
if(($litpic=='ddfirst' && !preg_match("#^http://#i", $picname)) || ($litpic=='ddfirst' && checkstr($picname,$cfg_basehost)))
接着,在第503行附近找到以下代码:
$oldpic = $cfg_basedir.$picname;
在这句代码的上面添加:
$picname = str_replace($cfg_basehost,'',$picname);
最后,在文件的末尾添加以下函数:
function checkstr($str,$str1){
// 判断是否包含$str1这个字符
$tmparray = explode($str1,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}
通过以上步骤,您可以成功实现Dedecms中内容图片和缩略图自动带上绝对域名的功能。这一改动不仅提高了图片加载的稳定性,还增强了网站的整体SEO表现。希望这篇文章能够帮助您更好地管理和优化您的Dedecms网站。