サイトマッププロトコルを使用しても、ウェブページが検索エンジンによってインデックス付けされることを保証するものではありません。これは、サイトのより徹底的なクロールを実行できるクローラーのための単なる追加のヒントです。 この記事では、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の資料を使用しました。
ご清聴ありがとうございました!