Stellt einen ASP.NET HttpHandler zur Verfügung, der beim Generieren einer dynamischen sitemap.xml-Datei hilft
Es gibt auch eine Umbraco-spezifische Erweiterung für Sitemapify, die die Erstellung der Sitemap aus Umbraco CMS-Inhalten unterstützt. Weitere Dokumentation finden Sie unter Sitemapify.Umbraco
Install-Package Sitemapify
Der Installationsprozess sollte Ihre web.config-Datei so aktualisiert haben, dass sie einen httphandler zur Verarbeitung von Anfragen an sitemap.xml
enthält. Er sollte etwa so aussehen:
< configuration > < system .webServer> < handlers > < add name = " Sitemapify " path = " sitemap.xml " verb = " GET " type = " Sitemapify.SitemapifyHttpHandler, Sitemapify " /> handlers > system .webServer> configuration >
Der Sitemap-Handler kann angepasst werden, indem die Basiskonfiguration über die statische Konfigurationsklasse Sitemapify.Configure
geändert wird.
Sitemapify . Configure ( c => c
. UsingContentProvider ( new YourContentProvider ( ) )
. UsingCacheProvider ( new YourCacheProvider ( ) )
. UsingDocumentBuilder ( new YourDocumentBuilder ( ) )
) ;
Sitemapify ist in Anbieter aufgeteilt, die für Elemente der Sitemap-Generierung verantwortlich sind.
ISitemapifyContentProvider
) Eine Implementierung eines Inhaltsanbieters stellt Sitemapify eine Sammlung von SitemapUrl
-Objekten bereit, die die in der Sitemap auszugebenden Knoten darstellen.
public interface ISitemapContentProvider
{
IEnumerable < SitemapUrl > GetSitemapUrls ( ) ;
bool Cacheable { get ; }
DateTime CacheUntil { get ; }
}
ISitemapifyCacheProvider
)Eine Implementierung eines Cache-Anbieters ermöglicht die Anpassung des Caching-Mechanismus, der zur Optimierung der Bereitstellung der Sitemap an den Browser verwendet wird. Sobald das Sitemap-Dokument generiert ist, wird es über die konfigurierte Implementierung dieser Schnittstelle zwischengespeichert.
public interface ISitemapCacheProvider
{
void Add ( XDocument sitemapContent , DateTimeOffset ? expires ) ;
bool IsCached { get ; }
XDocument Get ( ) ;
void Remove ( ) ;
}
ISitemapDocumentBuilder
) Eine Implementierung des ISitemapDocumentBuilder
ermöglicht die vollständige Anpassung des Sitemap-Dokuments selbst. Die Standardimplementierung generiert ein vollständig kompatibles Sitemap-Dokument basierend auf der offiziellen sitemap.xsd.
public interface ISitemapDocumentBuilder
{
XDocument BuildSitemapXmlDocument ( IEnumerable < SitemapUrl > sitemapUrls ) ;
}
Diese Version von Sitemapify.Umbraco unterstützt Umbraco 8.1+. Informationen zur Unterstützung von Umbraco v7.* finden Sie in Version 0.5.2.
Installieren Sie zunächst die Umbraco-Erweiterung:
Install-Package Sitemapify.Umbraco
Sobald Sie Sitemapify.Umbraco installiert haben, können Sie eine Komponente erstellen, um Sitemapify so zu konfigurieren, dass es den verfügbaren „Umbraco Content Provider“ verwendet, um Sitemap-URLs zu generieren, die die sitemap.xml bilden.
public class SitemapifyComponent : IComponent
{
public void Initialize ( )
{
Configure . With ( config => config . UsingContentProvider ( new SitemapifyUmbracoContentProvider ( ) ) ) ;
}
public void Terminate ( ) { }
}
Sie müssen außerdem einen UserComposer erstellen, um die Komponente zu registrieren.
public class SitemapifyComposer : IUserComposer
{
public void Compose ( Composition composition )
{
composition . Components ( ) . Append < SitemapifyComponent > ( ) ;
}
}
Standardmäßig sucht der Umbraco-Inhaltsanbieter nach Inhaltsknoteneigenschaften mit bestimmten Namen, um zu bestimmen, ob ein bestimmter Knoten in die generierte Sitemap-Datei aufgenommen werden soll. Diese Eigenschaftsnamen sind:
umbracoNaviHide
– True/False, um zu bestimmen, ob dieser Knoten enthalten ist (Standard: false)sitemapifyExcludeChildren
– True/False, um zu bestimmen, ob alle untergeordneten Knoten unter diesem Knoten ignoriert werden sollen (Standard: false)Wenn Sie diese Eigenschaftsaliase ändern möchten, können Sie sie über die Anwendungseinstellungen überschreiben:
< appSettings > < add key = " Sitemapify.Umbraco:ExcludedFromSitemapPropertyAlias " value = " newPropertyAlias " /> < add key = " Sitemapify.Umbraco:ExcludedChildrenFromSitemapPropertyAlias " value = " anotherPropertyAlias " /> appSettings >