出于安全考虑,我们有时需要屏蔽 robots.txt 文件对 data 目录的执行能力和访问能力,或者直接将 data 目录移动到其他位置。这种操作可能会导致 Dedecms CMS 的网站地图无法正常生成。

为了应对这种情况,我们特地为 Dedecms CMS 的网站地图生成问题标记为“Dedecms 网站地图 data 移动”,并提供以下解决方案:

1. 首先,无论您是移动了 DATA 目录还是通过 robots.txt 屏蔽了该目录,我们都建议更改 Dedecms 网站地图的生成目录。例如,可以将其更改为根目录下的“rss”文件夹。如果该文件夹不存在,请手动创建。


2. 接下来,修改 Dedecms 网站地图的生成程序文件。默认情况下,后台管理文件位于“dede”目录下。找到名为“makehtml_map.php”的文件并下载进行修改。在代码的第 25 到 33 行之间,将“/data/”路径更改为“/rss/”。以下是修改后的代码示例:


// 修改前
$murl = $GLOBALS['cfg_cmspath']."/data/".$this->TypeID.".xml";

// 修改后
$murl = $GLOBALS['cfg_cmspath']."/rss/".$this->TypeID.".xml";
    

上传修改后的文件后,您会发现网站地图能够正常生成在“rss”文件夹中。

3. 此外,还需要修改 Dedecms XML 地图的生成目录。XML 地图类文件位于根目录下的“include/arc.rssview.class.php”。打开该文件,找到大约第 100 到 104 行的代码,并将以下内容:


$murl = $GLOBALS['cfg_cmspath']."/data/".$this->TypeID.".xml";
    

更改为:


$murl = $GLOBALS['cfg_cmspath']."/rss/".$this->TypeID.".xml";
    

完成上述修改后,Dede XML 地图即可正常生成。


如果您希望进一步个性化调整,可以参考以下模板文件:

- templets\\\\plus\\\\sitemap.htm:HTML 地图模板

- templets\\\\plus\\\\rssmap.htm:RSS 地图模板

- templets\\\\plus\\\\rss.htm:RSS 生成地图模板

- include/sitemap.class.php:地图文件生成核心类,您可以在此文件中修改生成地图的相关样式。


本次修改已在 Dedecms CMS 5.7 版本上测试通过,确保其兼容性和稳定性。

通过以上步骤,您可以轻松解决因移动 data 目录或屏蔽访问权限而导致的网站地图生成问题,同时还能根据需求进行个性化调整。