我正在尝试为特定的 asp.net 网站动态生成 sitemap.xml。
我找到了几个解决方案:
Chinookwebs 运行良好,但现在似乎有点不活跃,并且无法个性化每个页面的“priority”和“changefreq”标签,它们都从配置文件中继承相同的值。
你们使用什么解决方案?
最佳答案
通常你会使用 HTTP Handler为了这。鉴于请求...
...您的处理程序将使用格式化的 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();
}
这段代码可以改进,但这是基本思想。
关于.net - 即时生成站点地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9336/