在进行SEO优化时,图片文件名的选择至关重要。Dedecms程序默认会更改上传图集的文件名,例如将beautiful_shoes.jpg更改为1-130409223432.jpg。这种命名方式虽然有助于系统管理,但对搜索引擎不够友好。根据Google的SEO优化指引,保留原始图片文件名可以提升图片的搜索排名。
为了实现这一目标,我们需要修改Dedecms的核心代码。具体来说,可以在dede目录下的swfupload.php文件中进行调整。

// 将以下代码替换为新的逻辑
$filename = $cuserLogin->getUserID().'-'.dd2char(MyDate('ymdHis', time()));
// 替换为
$filename = $Filedata_name;
    
完成上述修改后,您可能会发现上传后的文件名多了一个额外的后缀,例如beautiful_shoes.jpg.jpg。这是因为系统在处理文件名时未能正确识别扩展名。
解决这个问题的方法是进一步优化代码逻辑,确保只保留一个正确的扩展名。以下是改进后的代码:

// 保存原图
$filedir = $cfg_image_dir.'/'.MyDate($cfg_addon_savetype, time());
if(!is_dir(DEDEROOT.$filedir)) {
    MkdirAll($cfg_basedir.$filedir, $cfg_dir_purview);
    CloseFtp();
}
$filename = $Filedata_name;
if( file_exists($cfg_basedir.$filedir.'/'.$filename) ) {
    for($i=50; $i <= 5000; $i++) {
        if( !file_exists($cfg_basedir.$filedir.'/'.$i.'-'.$filename) ) {
            $filename = $i.'-'.$filename;
            break;
        }
    }
}
$fileurl = $filedir.'/'.$filename;
$rs = copy($FiledataNew, $cfg_basedir.$fileurl);
unlink($FiledataNew);
if(!$rs) {
    echo "ERROR: Copy Uploadfile Error!";
    exit(0);
}
通过以上调整,您可以确保图片以原始文件名上传,同时避免重复的扩展名问题。不过需要注意的是,此方法可能导致水印功能失效,需要进一步排查原因。
经过测试,这种方法在IE9、Firefox和Google Chrome等主流浏览器中均能完美支持中文图片名。这对于SEO优化非常有利,能够显著提高网站图片的可发现性和点击率。
希望这篇文章能帮助您更好地理解和实施Dedecms的图片SEO优化策略。记得在修改核心文件前备份原有代码,以免出现意外情况。