Menyediakan ASP.NET HttpHandler untuk membantu menghasilkan file sitemap.xml dinamis
Ada juga ekstensi khusus Umbraco untuk Sitemapify yang mendukung pembuatan peta situs dari konten Umbraco CMS. Lihat Sitemapify.Umbraco untuk dokumentasi lebih lanjut
Install-Package Sitemapify
Proses instalasi seharusnya memperbarui file web.config Anda untuk menyertakan httphandler untuk memproses permintaan ke sitemap.xml
, seharusnya terlihat seperti:
< configuration > < system .webServer> < handlers > < add name = " Sitemapify " path = " sitemap.xml " verb = " GET " type = " Sitemapify.SitemapifyHttpHandler, Sitemapify " /> handlers > system .webServer> configuration >
Pengendali peta situs dapat dikustomisasi dengan mengubah konfigurasi dasar melalui kelas konfigurasi statis Sitemapify.Configure
.
Sitemapify . Configure ( c => c
. UsingContentProvider ( new YourContentProvider ( ) )
. UsingCacheProvider ( new YourCacheProvider ( ) )
. UsingDocumentBuilder ( new YourDocumentBuilder ( ) )
) ;
Sitemapify dibagi menjadi beberapa penyedia yang bertanggung jawab atas elemen pembuatan peta situs.
ISitemapifyContentProvider
) Implementasi penyedia konten memasok Sitemapify dengan kumpulan objek SitemapUrl
yang mewakili node untuk dikeluarkan dalam peta situs.
public interface ISitemapContentProvider
{
IEnumerable < SitemapUrl > GetSitemapUrls ( ) ;
bool Cacheable { get ; }
DateTime CacheUntil { get ; }
}
ISitemapifyCacheProvider
)Implementasi penyedia cache memungkinkan penyesuaian mekanisme cache yang digunakan untuk mengoptimalkan pengiriman peta situs ke browser. Setelah dokumen peta situs dibuat, dokumen tersebut akan di-cache melalui implementasi antarmuka ini yang dikonfigurasi.
public interface ISitemapCacheProvider
{
void Add ( XDocument sitemapContent , DateTimeOffset ? expires ) ;
bool IsCached { get ; }
XDocument Get ( ) ;
void Remove ( ) ;
}
ISitemapDocumentBuilder
) Implementasi yang disediakan oleh ISitemapDocumentBuilder
memungkinkan penyesuaian penuh terhadap dokumen peta situs itu sendiri. Implementasi default menghasilkan dokumen peta situs yang sepenuhnya sesuai berdasarkan peta situs resmi.xsd.
public interface ISitemapDocumentBuilder
{
XDocument BuildSitemapXmlDocument ( IEnumerable < SitemapUrl > sitemapUrls ) ;
}
Versi Sitemapify.Umbraco ini mendukung Umbraco 8.1+. Untuk dukungan Umbraco v7.*, silakan merujuk ke versi 0.5.2.
Pertama instal ekstensi Umbraco:
Install-Package Sitemapify.Umbraco
Setelah Anda menginstal Sitemapify.Umbraco, Anda dapat membuat Komponen untuk mengonfigurasi Sitemapify agar menggunakan "Penyedia Konten Umbraco" yang tersedia untuk menghasilkan url peta situs yang membentuk sitemap.xml.
public class SitemapifyComponent : IComponent
{
public void Initialize ( )
{
Configure . With ( config => config . UsingContentProvider ( new SitemapifyUmbracoContentProvider ( ) ) ) ;
}
public void Terminate ( ) { }
}
Anda juga harus membuat UserComposer untuk mendaftarkan Komponen.
public class SitemapifyComposer : IUserComposer
{
public void Compose ( Composition composition )
{
composition . Components ( ) . Append < SitemapifyComponent > ( ) ;
}
}
Secara default, penyedia konten Umbraco akan mencari properti node konten dengan nama tertentu untuk menentukan apakah node tertentu harus disertakan dalam file peta situs yang dihasilkan, nama properti ini adalah:
umbracoNaviHide
- Benar/Salah untuk menentukan apakah node ini disertakan (Default: false)sitemapifyExcludeChildren
- Benar/Salah untuk menentukan apakah akan mengabaikan semua node anak di bawah node ini (Default: false)Jika Anda ingin mengubah alias properti ini, Anda dapat menggantinya melalui pengaturan aplikasi:
< appSettings > < add key = " Sitemapify.Umbraco:ExcludedFromSitemapPropertyAlias " value = " newPropertyAlias " /> < add key = " Sitemapify.Umbraco:ExcludedChildrenFromSitemapPropertyAlias " value = " anotherPropertyAlias " /> appSettings >