27

我想知道是否有人已经这样做了,或者有任何关于如何为 MVC 网站创建 Google 站点地图的示例。

任何帮助或示例将不胜感激。

我在谈论这个: https ://www.google.com/webmasters/tools/docs/en/protocol.html

4

5 回答 5

21

我使用了Mike Brind 的站点地图代码,稍作改动。

您需要将 XNamespace 添加到每个 XElement,否则 Google 会吐出假人。

这是我的版本:

public ContentResult Index()
        {
            XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9";
            const string url = "http://www.website.com/controller/action/{0}";
            var items = _db.DataAccessHere();
            var sitemap = new XDocument(
                new XDeclaration("1.0", "utf-8", "yes"),
                new XElement(ns + "urlset",
                    from i in items
                    select
                    //Add ns to every element.
                    new XElement(ns + "url", 
                      new XElement(ns + "loc", string.Format(url, i.ItemID)),
                          new XElement(ns + "lastmod", String.Format("{0:yyyy-MM-dd}", i.DateAddedUTC)),
                      new XElement(ns + "changefreq", "monthly"),
                      new XElement(ns + "priority", "0.5")
                      )
                    )
                  );
            return Content(sitemap.ToString(), "text/xml");
        }

感谢 Mike 发布原始文章和代码。

于 2009-12-15T03:50:21.830 回答
7

无耻的自我插件:在生产中的MvcSiteMapProvider出现奇怪问题后,我创建了一个名为SimpleMvcSitemap的库。您可以从任何操作方法提供站点地图文件,而无需任何配置:

public class SitemapController : Controller
{
    public ActionResult Index()
    {
        List<SitemapNode> nodes = new List<SitemapNode>
        {
            new SitemapNode(Url.Action("Index","Home")),
            new SitemapNode(Url.Action("About","Home")),
            //other nodes
        };

        return new SitemapProvider().CreateSitemap(nodes);
    }
}

它还支持所有可用的Google Sitemap 扩展

于 2013-12-13T21:53:56.793 回答
5

最简单的方法是使用许多免费的站点地图构建器中的任何一个——它们会抓取您的站点、跟踪链接并为您生成站点地图 XML 文件。

这是一个例子

于 2009-05-19T19:49:22.433 回答
3

这是一个帖子,可能会给你一些想法。基本上,它会根据路线值生成站点地图。

于 2009-05-19T19:49:36.677 回答
2

所以事情就是这样,使用生成器将为您的站点中的“所有内容”创建一个链接。因此,如果您有,比如说一个卡片网站,并且您有大约十万个卡片项目,每个卡片都有自己的链接,那么您可能会看到相同数量的链接。如果你想要这样,那么 xml 站点地图生成器就是你要走的路。

但如果你想让它有点个性化,你可以这样做:

列出您网站的所有主要部分。考虑到大多数 MVC 都使用“干净的 URL”之类的东西,这很容易做到。有点像“site.com/items/phones”

根据您使用的语言创建 XML 文档。

至少,您应该有这样的文档:

<?xml version="1.0" encoding="utf-8"?> 
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
      <url> 
        <loc>http://dragonflysco.com/catalog/finishings/19</loc> 
      </url> 
      <!-- more here -->
    </urlset>

有关更高级的结构,请查看: http ://www.google.com/support/webmasters/bin/answer.py?answer=183668

于 2010-10-25T05:07:34.863 回答