Generare sitemap al volo

voti
4

Sto cercando di generare una sitemap.xml al volo per un particolare sito web asp.net.

Ho trovato un paio di soluzioni:

  1. chinookwebs
  2. cervoproject
  3. newtonking

Chinookwebs sta lavorando molto, ma sembra un po 'inattiva in questo momento ed è impossibile per personalizzare la priorità e il tag changefreq di ogni pagina, tutti ereditano lo stesso valore dal file di configurazione.

Quali soluzioni voi ragazzi usare?

È pubblicato 13/08/2008 alle 01:01
fonte dall'utente
In altre lingue...                            


3 risposte

voti
7

Di solito si utilizza un gestore HTTP per questo. Data una richiesta di ...

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

... il vostro gestore risponderà con una mappa del sito in formato XML. Sia che sitemap viene generato al volo, da un database, o qualche altro metodo è fino alla realizzazione HTTP Handler.

Ecco più o meno quello che sarebbe simile:

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

Questo codice può essere migliorata, ma che è l'idea di base.

Risposto il 13/08/2008 a 08:19
fonte dall'utente

voti
0

Utilizzando ASP.NET MVC appena montata su un po 'veloce di codice utilizzando la libreria .NET generazione XML e poi appena passato che a una pagina di visualizzazione che ha avuto un controllo XML su di esso. Nel code-behind ho legato il controllo con il Viewdata. Questo sembrava ignorare il comportamento predefinito di pagine di visualizzazione per presentare una diversa intestazione.

Risposto il 13/08/2008 a 02:12
fonte dall'utente

voti
0

gestore personalizzato per generare la mappa del sito.

Risposto il 13/08/2008 a 01:48
fonte dall'utente

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