ASP.NET HttpHandlerを使用したオンザフライサイトマップ

サイトマップは、インデックス作成の対象となるWebサイトページに関する検索エンジン(Google、Yahoo、Ask.com、MSN、Yandexなど)の情報を含むXMLファイルです。 サイトマップは、検索エンジンがサイトのページ、最終更新時刻、更新頻度、およびサイト上の他のページの重要性を見つけるのに役立ち、検索エンジンはサイトをよりインテリジェントにインデックス付けできます。

サイトマッププロトコルを使用しても、ウェブページが検索エンジンによってインデックス付けされることを保証するものではありません。これは、サイトのより徹底的なクロールを実行できるクローラーのための単なる追加のヒントです。 この記事では、ASP.NET HttpHandlerを使用してオンザフライでサイトマップを取得する方法について説明します。


単一のページを含むサイトマップの例:

<? xml version ="1.0" encoding ="UTF-8" ? >
< urlset xmlns ="http://www.sitemaps.org/schemas/sitemap/0.9" >
< url >
< loc > habrahabr.ru </ loc >
< lastmod > 2009-10-25 </ lastmod >
< changefreq > monthly </ changefreq >
< priority > 0.8 </ priority >
</ url >
</ urlset >


* This source code was highlighted with Source Code Highlighter .


プロトコルの詳細については、 こちらをご覧ください

App_Codeディレクトリ内に、SiteMapHandler.csを作成します。

画像

画像

以下は、IHttpHandlerインターフェイスを実装するAsp.Netサイトマップハンドラーコードです。

public class SitemapHandler : IHttpHandler
{
protected enum ChangeFrequency
{
always,
hourly,
daily,
weekly,
monthly,
yearly,
never
}

#region IHttpHandler Members

public bool IsReusable
{
get { return false ; }
}

public void ProcessRequest( HttpContext context)
{
using (TextWriter textWriter = new StreamWriter(context.Response.OutputStream, System.Text. Encoding .UTF8))
{
XmlTextWriter writer = new XmlTextWriter(textWriter);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement( "urlset" );
writer.WriteAttributeString( "xmlns" , "http://www.sitemaps.org/schemas/sitemap/0.9" );

//Add home page
writer.WriteStartElement( "url" );
writer.WriteElementString( "loc" , "http://habrahabr.ru/" );
writer.WriteElementString( "lastmod" , DateTime .Now.ToString( "yyy-MM-dd" , System.Globalization.CultureInfo.InvariantCulture));
writer.WriteElementString( "changefreq" , ChangeFrequency.always.ToString());
writer.WriteElementString( "priority" , "0.8" );
writer.WriteEndElement(); // url

// Your code here for page nodes

writer.WriteEndElement(); // urlset
}
context.Response.ContentType = "text/xml" ;
}

#endregion
}


* This source code was highlighted with Source Code Highlighter .


「ページノードのコードをここに」というコメントの代わりに、データベース、web.sitemap、または別のソースからページを追加するためのロジックを挿入する必要があります。

web.configで次の行を追加する必要があります。

< httpHandlers >
< add verb ="*" path ="sitemap.axd"
type ="SitemapHandler" validate ="false" />
</ httpHandlers >


* This source code was highlighted with Source Code Highlighter .


サイトマップをテストするには、ブラウザーバーでSitemap.axdを開きます。

次に、robots.txtファイルを作成し、そこに行を入力する必要があります。

サイトマップ: youdomain / sitemap.axd

この記事では、サイトbloggingdeveloperの資料を使用しました。

ご清聴ありがとうございました!

Source: https://habr.com/ru/post/J73303/


All Articles