日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

[SEO]让你的Asp.Net网站自动生成Sitemap——XmlSitemap

發(fā)布時間:2024/4/11 asp.net 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [SEO]让你的Asp.Net网站自动生成Sitemap——XmlSitemap 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先我要說明:Asp.Net內(nèi)置的Sitemap與這里講的Sitemap是完全不同的,Asp.Net中的Sitemap主要用于給用戶導航,而這里說的Sitemap是用來給搜索引擎爬蟲指路。

還是直接來看看官方解釋吧:

什么是Sitemap?

Sitemap 可方便管理員通知搜索引擎他們網(wǎng)站上有哪些可供抓取的網(wǎng)頁。最簡單的 Sitepmap 形式,就是 XML 文件,在其中列出網(wǎng)站中的網(wǎng)址以及關(guān)于每個網(wǎng)址的其他元數(shù)據(jù)(上次更新的時間、更改的頻率以及相對于網(wǎng)站上其他網(wǎng)址的重要程度為何等),以便搜索引擎可以更加智能地抓取網(wǎng)站。

網(wǎng)絡抓取工具通常會通過網(wǎng)站內(nèi)部和其他網(wǎng)站上的鏈接查找網(wǎng)頁。Sitemap 會提供此數(shù)據(jù)以便允許支持 Sitemap 的抓取工具抓取 Sitemap 提供的所有網(wǎng)址,并了解使用相關(guān)元數(shù)據(jù)的網(wǎng)址。使用 Sitemap 協(xié)議并不能保證網(wǎng)頁會包含在搜索引擎中,但可向網(wǎng)絡抓取工具提供一些提示以便它們更有效地抓取網(wǎng)站。

Sitemap 0.90 是依據(jù)創(chuàng)意公用授權(quán)-相同方式共享 (Attribution-ShareAlike Creative Commons License) 的條款提供的,并被廣泛采用,受 Google、Yahoo! 和 Microsoft 在內(nèi)的眾多廠商的支持。

引自Sitemaps.org:http://www.sitemaps.org/zh_CN/

綜上所述,提供Sitemap是輔助搜索引擎爬蟲收錄網(wǎng)站的一種手段,沒有Sitemap你的網(wǎng)站一樣會被收錄,而有了Sitemap則會被收錄的更全面、準確。

它除了提供網(wǎng)址外,最重要的就是提供了頁面的更新時間戳,以及網(wǎng)站側(cè)重點和更新回訪頻率建議,使得搜索引擎能更精確地把握你的網(wǎng)站。

如何實現(xiàn)自動生成Sitemap?

現(xiàn)成的生成器已有不少:

http://code.google.com/p/sitemap-generators/wiki/SitemapGenerators

http://www.google.com/support/webmasters/bin/answer.py?answer=34634

不過在Asp.Net中,沒有官方的生成工具,搜索“Asp.Net Sitemap”找到的也都是大把的Asp.Net內(nèi)置的Sitemap功能介紹網(wǎng)頁。

故此,我希望自己來實現(xiàn)一個Asp.Net的Sitemap生成工具。并且我希望這個工具是可以和Asp.Net同步交互進行數(shù)據(jù)更新的,以保障數(shù)據(jù)的時效性;而其他大多數(shù)生成器都像是一個私人爬蟲,你需要手動放出它來爬遍你的網(wǎng)站,以生成整站的Sitemap,我不喜歡這樣。

XmlSitemap

這就是我實現(xiàn)的Sitemap生成工具,簡單講一下實現(xiàn)方式:

  • 通過數(shù)據(jù)庫存儲站點、頁面集合、頁面數(shù)據(jù):
  • 在Asp.Net網(wǎng)站中,增刪改數(shù)據(jù)時,調(diào)用站點地圖公開的方法更新數(shù)據(jù)庫數(shù)據(jù)。
  • 通過Ashx輸出XML格式的Sitemap供搜索引擎爬蟲讀取。
  • 在文章末尾處我將共享此項目的下載鏈接,接下來將講一下此項目的使用方法。

    如何部署?

    我將提供以下文件用于在現(xiàn)有Asp.Net網(wǎng)站中部署此功能:

    首先要引用XmlSitemap.dll。

    然后通過“添加現(xiàn)有項”將XMLSiteMap.ashx.cs及XMLSiteMap.ashx添加到項目中。

    再通過“添加現(xiàn)有項”將SiteMap.mdf添加到項目的App_Data目錄中。

    在Web.Config中指定SiteMap.mdf的數(shù)據(jù)庫連接字串:

    <connectionStrings>

    ??? <add name="MySitemapDataConnstr" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename='C:\Users\SkyD\Documents\Visual Studio 2008\Projects\實驗室\WebApplication10\WebApplication10\App_Data\SiteMap.mdf';Integrated Security=True;User Instance=True"/>

    </connectionStrings>

    在項目中新增一個Global.asax文件(如果之前沒創(chuàng)建此文件的話),在其Application_Start中進行初始化:

    其中藍色高亮部分是上文中在Web.Config中指定的SiteMap.mdf的數(shù)據(jù)庫連接字串;

    黃色高亮部分是你的網(wǎng)站名稱,在每次提交數(shù)據(jù)時都將用到此字符串;

    綠色高亮部分是你的這個站點的網(wǎng)址,每次新增的網(wǎng)址數(shù)據(jù)都必須位于此網(wǎng)址域名下。

    如何使用?

    我們將通過一個按鈕來模擬添加數(shù)據(jù)的操作:

    protected void Button1_Click(object sender, EventArgs e)

    {

    ??? var id=Guid.NewGuid();

    ??? 站點地圖.添加頁面("MySite", id, Path.Combine("http://www.MySite.com/", "Page.aspx?ID=" + id), 0.5, 更新頻率.每天);

    }

    注意:這里僅僅是用來測試,所以臨時生成了一個Guid傳入站點地圖,而在實際使用時,應當以你的原數(shù)據(jù)條目的Guid傳入,因為你在之后很可能還會對其進行更新、刪除操作,如果同時要反映到站點地圖中的話,你就必須還以它的Guid作為標識,才能找到它。

    當你頻繁點擊這個按鈕后,站點地圖中就會新增了多條數(shù)據(jù),你可以通過訪問XmlSiteMap.ashx?Site=MySite查看當前的頁面集合列表:

    其中的Url地址是頁面集合的網(wǎng)址,由于頁面數(shù)據(jù)量沒有達到頁面集合所容納的上限,所以目前就只有一個頁面集合。

    訪問頁面集合的網(wǎng)址:

    ?

    這里就是每個頁面的詳細地址及相關(guān)信息列表。

    除了添加數(shù)據(jù)之外,還有更新、刪除等方法,由于都是中文寫的代碼,易于理解,就不在此一一演示了:

    資源下載

    部署文件:http://www.uushare.com/user/icesee/file/1893271

    示例網(wǎng)站項目源代碼:http://www.uushare.com/user/icesee/file/1893269

    XmlSitemap源代碼:http://www.uushare.com/user/icesee/file/1893270

    本文的XPS版本:http://www.uushare.com/user/icesee/file/1895946

    總結(jié)

    以上是生活随笔為你收集整理的[SEO]让你的Asp.Net网站自动生成Sitemap——XmlSitemap的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。