ASP.NET 创建网站地图

很多个人站长会使用工具来生成自己网站的站点地图,这样做的缺点在于网站的 sitemap 不能及时的得到更新。当我们发表了一篇新文章时,应该对网站的地图进行更新,并通知搜索引擎网站地图已经发生了改变!

首先,让我们看看在 ASP.NET 中怎样生成网站地图。第一步,我们完成创建节点的方法,如下:

/// <summary>
/// 创建节点
/// </summary>
/// <param name="strUrl">链接地址</param>
/// <param name="dLastMod">最后修改时间</param>
/// <param name="strChangeFreq">更新频率</param>
/// <returns>返回节点</returns>
private static XmlNode CreateNode(string strUrl,
    DateTime dLastMod, string strChangeFreq)
{
    XmlNode xNodeUrl = xd.CreateElement("url");

    XmlNode nodeLoc = xd.CreateElement("loc");
    nodeLoc.InnerText = strUrl;
    xNodeUrl.AppendChild(nodeLoc);

    XmlNode nodeLastMod = xd.CreateElement("lastmod");
    nodeLastMod.InnerText = dLastMod.ToString("yyyy-MM-ddThh:mm:ss+00:00");
    xNodeUrl.AppendChild(nodeLastMod);

    XmlNode nodeChangeFreq = xd.CreateElement("changefreq");
    nodeChangeFreq.InnerText = strChangeFreq;
    xNodeUrl.AppendChild(nodeChangeFreq);

    return xNodeUrl;
}

接下来调用上边的方法,遍历网站文章,输出网站地图:

static XmlDocument xd = new XmlDocument();

/// <summary>
/// 输出 Sitemap
/// </summary>
/// <param name="article">List<Article></param>
public static void WriteSitemap(List<Article> article)
{
    string strFile = HttpRuntime.AppDomainAppPath + "xml/sitemap.xml";
    XmlNode rootNode = xd.CreateElement("urlset");

    XmlAttribute attrXmlNS = xd.CreateAttribute("xmlns");
    attrXmlNS.InnerText = "http://www.sitemaps.org/schemas/sitemap/0.9";
    rootNode.Attributes.Append(attrXmlNS);

    // 网站首页
    rootNode.AppendChild(CreateNode("http://www.lidongkui.com/", DateTime.Now, "daily"));

    //创建各文章节点 <url></url>
    foreach (Article a in article)
    {
        rootNode.AppendChild(CreateNode("http://www.lidongkui.com/" + a.UrlName, a.AddTime, "monthly"));
    }
    xd.AppendChild(rootNode);
    xd.InsertBefore(xd.CreateXmlDeclaration("1.0", "UTF-8", null), rootNode);

    xd.Save(strFile);
}

最后,只需要获取文章,调用方法输出网站地图:

XML.WriteSitemap(db.Articles
                    .OrderByDescending(m => m.ID)
                    .ToList()
                );

到这里就成功输出了网站地图,但是输出网站地图后搜索引擎并不能及时发现我们网站地图的改变,这时我们需要 ping 一下各搜索引擎,方法如下:

//google
System.Net.WebRequest reqGoogle = System.Net.WebRequest
    .Create("http://www.google.com/webmasters/tools/ping?sitemap=" +
    HttpUtility.UrlEncode("http://www.lidongkui.com/xml/sitemap.xml"));
reqGoogle.GetResponse();

//ask
System.Net.WebRequest reqAsk = System.Net.WebRequest
    .Create("http://submissions.ask.com/ping?sitemap=" +
    HttpUtility.UrlEncode("http://www.lidongkui.com/xml/sitemap.xml"));
reqAsk.GetResponse();

//yahoo
System.Net.WebRequest reqYahoo = System.Net.WebRequest
    .Create("http://search.yahooapis.com/SiteExplorerService/V1/updateNotification?appid=YahooDemo&url=" +
    HttpUtility.UrlEncode("http://www.lidongkui.com/xml/sitemap.xml"));
reqYahoo.GetResponse();

//bing
System.Net.WebRequest reqBing = System.Net.WebRequest
    .Create("http://www.bing.com/webmaster/ping.aspx?siteMap=" +
    HttpUtility.UrlEncode("http://www.lidongkui.com/xml/sitemap.xml"));
reqBing.GetResponse();

使用这些方法,当我们发表了一篇新文章后及时更新了我们的网站地图,同时告知搜索引擎我们的网站地图已经发生变化,这样更有利于 SEO。

转自:http://www.lidongkui.com/create-sitemap

时间: 2024-10-03 22:15:43

ASP.NET 创建网站地图的相关文章

用ASP.NET创建网站

ASP.NET提供三种框架来创建web应用:WebForms,ASP.NET MVC和ASP.NET WebPages.这三种框架都是稳定成熟的,你可以用任何一种方式开发一个很棒的web应用.不管你选择了哪个开发,你可以在任何地方体会到ASP.NET的便利和特性. 每个框架都针对不同的开发方式,你选择的框架依赖你编程的积累(知识,技能和开发经验),你创建应用的类型,以及你熟悉的开发方法.这三种框架将会在未来ASP.NET发行版中得到支持,更新,改进. 下面是一个每种框架的概览,以及一些如何选择框

网站地图sitemap

网站地图是根据网站的结构.框架.内容,生成的导航网页,是一个网站所有链接的容器.很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指路,增加网站内容页面的收录概率.网站地图一般存放在域名根目录下并命名为sitemap,比如http://www.liujiangblog.com/sitemap.xml. 一个典型的sitemap,其内容片段如下: This XML file does not appear to have any

django网站地图sitemap

网站地图是根据网站的结构.框架.内容,生成的导航网页,是一个网站所有链接的容器.很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指路,增加网站内容页面的收录概率.网站地图一般存放在域名根目录下并命名为sitemap,比如http://www.liujiangblog.com/sitemap.xml. 一个典型的sitemap,其内容片段如下: This XML file does not appear to have any

在 Mac OS 上创建并运行 ASP.NET 5 网站

在 Mac OS 上创建并运行 ASP.NET 5 网站? 提示 本文链接: http://cnblogs.com/qin-nz/p/5035619.html 或 http://blog.qin.nz/aspnet5/aspnet5-first-app-on-mac-os.html 相信用 Mac 作为主力机型的各位是不会玩 ASP.NET 的,所以我真的很怀疑我这篇文章会有人看么? 安装 .NET 版本管理器(DNVM)? 首先,我们需要安装 .NET 版本管理器,其实就是一个脚本文件用来帮助

在Windows Azure上创建ASP.NET MVC网站

本篇体验在Windows Azure上创建ASP.NET MVC网站. →登录到Windows Azure管理门户 →点击左下方的"新建" →点击"自定义创建",在界面中填写如下:注意:用户名就是服务器的管理员登录名.点击确定. →点击网站名称. →点击右侧的"下载发布配置文件",把后缀名为PublishSettings的文件保存到本地硬盘上,记住保存的位置. →到这里下载Visual Studio 2012的SDK,并安装,需要比较长的时间.

米扑科技的开源项目:sitemap-php 自动生成网站地图

米扑科技旗下的产品,近期正在做SEO网站优化,其中子需求之一是调研实现了网站地图(sitemap.xml) 封装简化了许多功能模块,现在分享出来,源代码可在Github上下载,有简单的示例. Github 开源网址: sitemap-php What is sitemap-php ? sitemap-php 是一个轻量级.简单快速生成网站地图的开源项目,由北京米扑科技有限公司(mimvp.com)开发分享. 通过简单的配置定义,一个函数createSitemap(),可自动生成sitemap.x

ASP.NET MVC5 网站开发实践(二) Member区域 - 添加文章

转自:http://www.cnblogs.com/mzwhj/p/3592895.html 上次把架构做好了,这次做添加文章.添加文章涉及附件的上传管理及富文本编辑器的使用,早添加文章时一并实现. 要点: 富文本编辑器采用KindEditor.功能很强大,国人开发,LGPL开源,自己人的好东西没有理由不支持. 附件的上传同样基于KindEditor实现,可以上传图片,flash,影音,文件等. 目录 ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一)

vs2013 创建网站

从文件菜单中选择新建网站,版本选择4,如果选择更高级的版本在发布的时候老是会报错,暂时找不到解决的方法,所以就选择4这个版本了.选择asp的空网站,在下面选择文件系统. 项目建好后如下,然后添加一个web窗体. 这样就可以发布网站了,在发布之前要先在IIS上创建一个站点,在创建站点前,我先添加几个IP地址. 打开IIS,创建站点 网站的名称暂时设置为aspweb1,类型选择http,ip地址选择刚才添加的新ip,端口就80吧,不管了 站点创建好了以后,然后在vs中发布网站.下面的webconfi

VisualStudio使用本地IIS服务调试ASP.NET MVC 网站

目标:使用本地IIS服务调试ASP.NET MVC 网站 操作系统:windows 8.1企业版 IIS:系统自带IIS6.0 VisualStudio版本:2013 SP5 MVC 版本:MVC 4.5.1 =================================================================== 概要: 1.IIS 服务安装及配置 2.Visual Studio 关联IIS服务 3.局域网内访问调试中的网站 ====================