Genereer sitemap on the fly

stemmen
4

Ik ben op zoek naar een sitemap.xml on the fly voor een bepaalde asp.net website te genereren.

Ik vond een paar oplossingen:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs werkt geweldig, maar lijkt een beetje inactief op dit moment en het is onmogelijk om de prioriteit en de changefreq tags van elke pagina aan te passen, ze allemaal erven dezelfde waarde uit het configuratiebestand.

Welke oplossingen doen jullie gebruiken?

De vraag is gesteld op 13/08/2008 om 01:01
bron van user
In andere talen...                            


3 antwoorden

stemmen
7

Meestal krijg je een gebruiken HTTP Handler voor. Gezien het verzoek om ...

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

... je handler zal reageren met een geformatteerde XML sitemap. Of dat sitemap wordt gegenereerd op de vlieg, uit een database, of een andere methode is om de invoering HTTP Handler.

Dit is ongeveer wat het eruit zou zien:

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

Deze code kan worden verbeterd, maar dat is het basisidee.

antwoordde op 13/08/2008 om 08:19
bron van user

stemmen
0

Met behulp van ASP.NET MVC net slagroom op een snelle stukje code gebruik van de .NET XML generatie bibliotheek en dan net voorbij dat voor het oog pagina die een XML-controle op het had. In de onderliggende code gebonden I de controle met de ViewData. Dit leek de standaard gedrag van pagina's bekijken overschrijven naar een andere header te presenteren.

antwoordde op 13/08/2008 om 02:12
bron van user

stemmen
0

Custom handler naar de sitemap te genereren.

antwoordde op 13/08/2008 om 01:48
bron van user

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