2009-05-19 12 views

Antwort

5

Der einfachste Weg eine beliebige einer Anzahl von freien Sitemap Bauherren dort zu verwenden wäre - werden sie Ihre Website kriechen, folgen Sie Links und eine Sitemap XML-Datei generieren für Sie.

Here's one for example

3

Hier ist ein post, die Ihnen einige Ideen geben könnte. Im Grunde erstellt es eine Sitemap aus den Routenwerten.

22

Ich verwendete Mike Brind's Sitemap code, mit einer kleinen Änderung.

Sie müssen den XNamespace zu jedem XElement hinzufügen, andernfalls spuckt Google den Dummy aus.

Hier ist meine Version:

public ContentResult Index() 
     { 
      XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9"; 
      const string url = "http://www.website.com/controller/action/{0}"; 
      var items = _db.DataAccessHere(); 
      var sitemap = new XDocument(
       new XDeclaration("1.0", "utf-8", "yes"), 
       new XElement(ns + "urlset", 
        from i in items 
        select 
        //Add ns to every element. 
        new XElement(ns + "url", 
         new XElement(ns + "loc", string.Format(url, i.ItemID)), 
          new XElement(ns + "lastmod", String.Format("{0:yyyy-MM-dd}", i.DateAddedUTC)), 
         new XElement(ns + "changefreq", "monthly"), 
         new XElement(ns + "priority", "0.5") 
        ) 
        ) 
       ); 
      return Content(sitemap.ToString(), "text/xml"); 
     } 

Credit Mike für den ursprünglichen Artikel und Code veröffentlichen.

+1

Ta, Schönes Stück Code. Möglicherweise möchten Sie ein weiteres XElement des Stammwebknoten hinzufügen. – Junto

+0

tolles und einfaches Stück Code, ich habe dies verwendet und erstellt http://www.gprprojecten.nl/Home/Sitemap mit dem Zusatz, dass @Junto bereits vorgeschlagen –

+0

Danke - wieder - an Mike. Seine Website ist http://www.mikesdotnetting.com, und seine Artikel sind einfach zu verstehen und leistungsstark. Und nein, ich habe überhaupt keine Verbindung zu ihm, außer dass ich danke sagen möchte! –

2

Also hier ist die Sache, mit Generatoren wird nur über einen Link für "alles" auf Ihrer Website erstellen. Also, wenn Sie eine Kartenseite haben, und Sie haben etwa hunderttausend Kartenelemente, jedes mit seinem eigenen Link und allen, werden Sie wahrscheinlich die gleiche Anzahl von Links sehen. Wenn Sie das wollen, dann XML-Sitemap-Generatoren sind der Weg zu gehen.

Aber wenn man es ein wenig personalisiert möchten, können Sie diese tun:

Liste alle wichtigen Bereiche Ihrer Websites. Dies ist leicht zu bewerkstelligen, da die meisten MVCs die "sauberen URLs" verwenden. ein bisschen wie "site.com/items/phones"

Erstellen Sie ein XML-Dokument, abhängig von der Sprache, die Sie verwenden.

Im Minimum sollten Sie ein Dokument wie dieses:

<?xml version="1.0" encoding="utf-8"?> 
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
     <url> 
     <loc>http://dragonflysco.com/catalog/finishings/19</loc> 
     </url> 
     <!-- more here --> 
    </urlset> 

Für anspruchsvollere Struktur, überprüfen Sie dies: http://www.google.com/support/webmasters/bin/answer.py?answer=183668

5

Shameless Selbst Stecker: Ich habe eine Bibliothek SimpleMvcSitemap genannt seltsam, nachdem Probleme mit MvcSiteMapProvider bei der Produktion. Sie können ohne Konfiguration Sitemap-Dateien aus jeder Aktion-Methode dienen:

public class SitemapController : Controller 
{ 
    public ActionResult Index() 
    { 
     List<SitemapNode> nodes = new List<SitemapNode> 
     { 
      new SitemapNode(Url.Action("Index","Home")), 
      new SitemapNode(Url.Action("About","Home")), 
      //other nodes 
     }; 

     return new SitemapProvider().CreateSitemap(nodes); 
    } 
} 

Es unterstützt auch alle Google Sitemap extensions zur Verfügung.

+0

SimpleMVCSutemap-Projekt wird Sitemap-Datei dynamisch in das Projekt nach dieser Zeilenausführung erstellen 'new SitemapProvider() zurückgeben. CreateSitemap (HttpContext, Knoten);'? – Thomas

+0

@Thomas es wird bei jeder Anfrage generiert, die diese Aktionsmethode aufruft. Sie können es in einer Datei speichern und als Inhalt bereitstellen, wenn Ihre Links statisch sind. –

Verwandte Themen