我试图产生一个sitemap.xml 在飞行中用于一个特定的asp.net 网站。

我发现了几个方案:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs是伟大的工作,但似乎有点不活跃,现在,这是不可能个性化的"优先权"和"changefreq"标签的每一页上,他们都继承同样的价值从配置文件。

什么样的解决方案做你们使用?

有帮助吗?

解决方案

通常会使用 HTTP处理 这一点。给出的请求。

http://www.yoursite.com/sitemap.axd

...你的处理程序将回应一个格式化,XML网站。这是否是网站上产生的飞行,从一个数据库,或一些其他的方法是达到HTTP处理的实施。

在这里,约什么会是这样的:

void IHttpHandler.ProcessRequest(HttpContext context)
{
    //
    // Important to return qualified XML (text/xml) for sitemaps
    //
    context.Response.ClearHeaders();
    context.Response.ClearContent();
    context.Response.ContentType = "text/xml";
    //
    // Create an XML writer
    //
    XmlTextWriter writer = new XmlTextWriter(context.Response.Output);
    writer.WriteStartDocument();
    writer.WriteStartElement("urlset", "http://www.sitemaps.org/schemas/sitemap/0.9");
    //
    // Now add entries for individual pages..
    //
    writer.WriteStartElement("url");
    writer.WriteElementString("loc", "http://www.codingthewheel.com");
    // use W3 date format..
    writer.WriteElementString("lastmod", postDate.ToString("yyyy-MM-dd"));
    writer.WriteElementString("changefreq", "daily");
    writer.WriteElementString("priority", "1.0");
    writer.WriteEndElement();
    //
    // Close everything out and go home.
    //
    result.WriteEndElement();
    result.WriteEndDocument();
    writer.Flush();
}

这个代码可以改善,但这是基本的想法。

其他提示

定义的处理程序产生的地图。

使用ASP.NET 视只是刮起了一个快速的代码使用。净XML代图书馆,然后刚刚通过,以便页有一个XML控制。在代码隐藏我绑控制与可视数据用.这似乎复盖默认的行为查看网页以本不同的标题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top