Generieren Sitemap on the fly

stimmen
4

Ich versuche, eine sitemap.xml on the fly für eine bestimmte asp.net Website zu generieren.

Ich fand ein paar Lösungen:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs arbeitet groß, aber scheint ein wenig inaktiv jetzt und es ist unmöglich, die „Priorität“ und die „changefreq“ Tags von jedem und jeder Seite zu personalisieren, sie alle den gleichen Wert aus der Konfigurationsdatei erben.

Welche Lösungen verwendet ihr?

Veröffentlicht am 13/08/2008 um 01:01
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
7

Normalerweise erhalten Sie eine verwenden HTTP - Handler für diese. Bei einem Antrag auf ...

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

... Ihr Handler mit einer formatierten XML-Sitemap antworten. Ob das Sitemap on the fly erzeugt wird, aus einer Datenbank oder einem anderen Verfahren ist bis zu dem HTTP-Handler-Implementierung.

Hier ist grob, wie es aussehen würde:

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();
}

Dieser Code kann verbessert werden, aber das ist die Grundidee.

Beantwortet am 13/08/2008 um 08:19
quelle vom benutzer

stimmen
0

Mit ASP.NET MVC peitschte nur eine schnelle Stück Code .NET XML-Generation-Bibliothek und dann passiert genau das zu einer Ansichtsseite, die auf sie eine XML-Kontrolle hatte. In der Code-Behind-band ich die Kontrolle mit dem Viewdata. Dies schien das Standardverhalten der Ansicht Seiten außer Kraft zu setzen, eine andere Header zu präsentieren.

Beantwortet am 13/08/2008 um 02:12
quelle vom benutzer

stimmen
0

Benutzerdefinierte Handler die Sitemap zu generieren.

Beantwortet am 13/08/2008 um 01:48
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more