You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让2sxc应用的友好URL显示在DNN的Sitemap.aspx站点地图中

DNN站点地图添加2sxc自定义详情页URL解决方案

完全可以实现,你可以通过DNN的站点地图扩展机制结合2sxc的API来注入所有详情页链接,具体操作方案如下:


方案1:使用2sxc内置站点地图集成功能(推荐,适配2sxc v11+版本)

2sxc高版本已经内置了DNN站点地图的扩展支持,无需额外开发即可完成配置:

  • 进入2sxc应用后台,找到存储详情条目对应的内容类型
  • 打开内容类型的「设置」面板,找到「站点地图(Sitemap)」配置区块
  • 勾选「将此类型的内容条目加入DNN站点地图」选项
  • 在URL规则配置栏填入你的详情页路由规则:/landing-page/details/[UrlSlug],将[UrlSlug]替换为你存储自定义友好URL后缀的字段名
  • 按需配置每条条目的优先级、更新频率参数,保存后清理DNN全站缓存即可生效

方案2:自定义DNN站点地图提供者(适配低版本2sxc/自定义路由场景)

如果你的2sxc版本较低,或者路由规则有特殊自定义逻辑,可以自行实现DNN的ISitemapProvider接口注入链接:

  1. 按照如下逻辑编写自定义提供者代码:
using DotNetNuke.Services.Sitemap;
using System.Collections.Generic;
using System.Linq;

public class Custom2sxcSitemapProvider : SitemapProvider
{
    public override List<SitemapUrl> GetUrls(int portalId, SitemapOptions options)
    {
        var urls = new List<SitemapUrl>();
        // 初始化2sxc应用服务,替换为你的实际应用ID
        var appService = ToSic.Sxc.Dnn.Factory.GetAppService(portalId, 123);
        // 获取所有已发布的详情条目,替换为你的实际内容类型名称
        var detailItems = appService.Data["DetailItem"].Where(i => i.IsPublished);
        
        foreach (var item in detailItems)
        {
            urls.Add(new SitemapUrl
            {
                // 替换为你的实际URL规则,UrlSlug替换为你的友好URL字段名
                Url = $"https://your-domain.com/landing-page/details/{item.UrlSlug}",
                LastModified = item.Modified,
                Priority = 0.8f,
                ChangeFrequency = SitemapChangeFrequency.Monthly
            });
        }
        return urls;
    }
}

注意替换代码中的应用ID、内容类型名称、URL字段名为你实际业务对应的参数
2. 将编译后的dll文件放到DNN站点的bin目录
3. 在DNN后台「主机」-「扩展」-「站点地图提供者」中添加你自定义的提供者即可生效


验证方式

配置完成后访问domain.com/Sitemap.aspx,即可看到所有2sxc详情页的URL已经被收录到站点地图中,如果没有立即生效可以清理DNN的站点缓存后再刷新。

内容的提问来源于stack exchange,提问作者Aaron - Wolf X Machina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:45:02