凌峰创科服务平台

DedeCms网站地图生成失败怎么办?

DedeCMS 提供了两种主要的地图生成方式:

DedeCms网站地图生成失败怎么办?-图1
(图片来源网络,侵删)
  1. 后台手动生成:最常用、最直接的方法,适合所有用户。
  2. 自动生成:通过修改模板文件,实现地图文件随内容更新而自动更新,适合有一定技术能力的用户。

在 DedeCMS 后台手动生成(推荐)

这是最简单、最安全的方法,你只需要在网站后台点击几下鼠标即可。

步骤 1:进入地图生成页面

  1. 登录你的 DedeCMS 网站后台。
  2. 在左侧菜单栏中,找到并点击 “系统” -> “SQL命令行工具”
  3. 在打开的页面中,你会看到两个主要功能:“SQL命令行工具”和 “一键生成网站地图”,我们直接使用第二个功能。

步骤 2:配置并生成地图

点击 “一键生成网站地图” 后,你会看到一个配置表单,以下是各项参数的详细说明:

  • 主页链接:通常自动填写,是你的网站首页地址,一般无需修改。
  • 栏目设置
    • 选择顶级栏目:选择你希望包含在地图中的顶级栏目,默认是全选。
    • 是否包含栏目下所有子栏目强烈建议勾选此项,这样生成的地图会包含所有层级的栏目,非常全面。
  • URL设置
    • 是否包含外部链接:如果你的栏目中添加了外部链接,勾选此项会将其包含在地图中,通常不勾选。
    • 是否包含图片模型:如果你的网站有大量图片内容(如图片站),勾选此项可以生成图片专用的地图文件 sitemap.xml.images.xml,普通网站无需勾选。
  • 文件保存路径
    • 存放目录:设置地图文件存放的目录,默认是 /sitemap/,系统会自动创建这个目录。
    • 文件名:设置地图文件的名称,默认是 sitemap.xml,这是搜索引擎主要识别的文件。
    • 其他格式文件名:可以同时生成其他格式的地图文件,如 sitemap.txt(纯文本,方便手动提交)等。

步骤 3:开始生成

配置好所有选项后,点击底部的 “开始生成网站地图” 按钮。

系统会开始处理,并显示生成进度,生成成功后,你会看到提示信息,告诉你地图文件已经成功创建在指定路径下。

DedeCms网站地图生成失败怎么办?-图2
(图片来源网络,侵删)

步骤 4:验证和提交地图

  1. 验证地图:在浏览器中访问你设置的地图地址,http://你的域名.com/sitemap/sitemap.xml,如果能看到一个包含你网站所有链接的 XML 文件,说明生成成功。
  2. 提交到搜索引擎
    • Google 搜索控制台:登录你的 Google Search Console,在 “站点地图” (Sitemaps) 部分,添加你刚刚生成的地图 URL,http://你的域名.com/sitemap/sitemap.xml,然后点击“提交”。
    • 百度搜索资源平台:登录你的百度搜索资源平台,在 “站点地图” 部分,同样添加地图 URL 并提交。

修改模板实现自动生成

手动生成虽然方便,但每次更新内容后都需要手动操作一次,通过修改模板,可以让系统在你发布新文章、新栏目时自动更新地图文件。

核心原理

DedeCMS 在发布文章(article_add.php)和添加栏目(catalog_add.php)时,会执行一些操作,我们可以在这些操作的最后,加入调用地图生成函数的代码。

操作步骤

⚠️ 重要提示:在修改任何核心文件之前,请务必备份原文件!以防操作失误导致网站无法正常运行。

修改文章发布文件 (/dede/article_add.php)

DedeCms网站地图生成失败怎么办?-图3
(图片来源网络,侵删)
  1. 使用 FTP 或文件管理器,打开 /dede/article_add.php 文件。

  2. 找到文件末尾的 ShowMsg("成功发布一篇新的文章!", "$backurl"); 这一行。

  3. 在这一行之前,添加以下代码:

    // 自动生成网站地图
    $dopost = 'site';
    require_once(DEDEINC."/sitemap.class.php");
    $sm = new SiteMap();
    $sm->GetSiteMap();
  4. 保存文件。

修改栏目添加文件 (/dede/catalog_add.php)

  1. 打开 /dede/catalog_add.php 文件。

  2. 找到文件末尾的 ShowMsg("成功增加一个栏目!", "$backurl"); 这一行。

  3. 在这一行之前,添加与上面完全相同的代码:

    // 自动生成网站地图
    $dopost = 'site';
    require_once(DEDEINC."/sitemap.class.php");
    $sm = new SiteMap();
    $sm->GetSiteMap();
  4. 保存文件。

修改栏目编辑文件 (可选,但推荐)

如果你希望在编辑栏目后也更新地图,可以修改 /dede/catalog_edit.php 文件。

  1. 打开 /dede/catalog_edit.php 文件。
  2. 找到文件末尾的 ShowMsg("成功修改一个栏目!", "$backurl"); 这一行。
  3. 在这一行之前,添加相同的代码。
  4. 保存文件。

效果

完成以上修改后,每当你在后台发布一篇新文章、添加一个新栏目或编辑一个栏目时,系统会自动调用地图生成功能,更新 /sitemap/ 目录下的 sitemap.xml 文件。


常见问题与注意事项

  1. 地图文件路径不正确或404

    • 检查后台生成的路径是否正确,并确认服务器上 /sitemap/ 目录及其中的文件是否存在。
    • 如果使用了伪静态(如 Rewrite),确保服务器配置允许访问 .xml 文件。
  2. 地图文件内容为空或只有首页

    • 检查后台生成地图时的“栏目设置”,确保你已经选择了正确的栏目并勾选了“包含子栏目”。
    • 确保你的网站栏目和文章都处于“正常”发布状态。
  3. 手动生成后地图没有更新

    • 检查 /data 目录是否有写入权限,地图生成过程需要写入文件,权限不足会导致失败。
    • 清理浏览器缓存后重新访问地图地址。
  4. Google 和百度都接收不到地图

    • 确保地图文件本身格式正确,可以去 XML-Sitem.com 等在线工具验证你的 sitemap.xml 文件。
    • 确保在搜索引擎控制台中提交的是正确的、完整的地图 URL。
    • 网站本身可能存在 robots.txt 文件禁止了搜索引擎抓取 /sitemap/ 目录,请检查你的 robots.txt 文件,确保没有类似 Disallow: /sitemap/ 的规则。
方法 优点 缺点 适用人群
后台手动生成 操作简单、安全,无需修改代码 需要手动操作,容易遗忘 所有 DedeCMS 用户,特别是新手
模板自动生成 一次设置,永久自动更新,省心省力 需要修改核心文件,有一定风险,技术门槛稍高 有一定 PHP 基础,追求效率和自动化的站长

对于绝大多数用户来说,强烈推荐使用方法一,即定期在后台手动生成并提交地图,这样既安全又能保证地图的及时性,如果你是技术型站长,并且希望完全自动化,那么方法二会是很好的选择。

分享:
扫描分享到社交APP
上一篇
下一篇