2009-04-09 106 views
5

是否有确定的DO不要何时执行seo url?对于.html网站来说,很多好的做法似乎都很好,但在中型/大型数据库网站上却存在分歧。ASP.NET MVC的SEO网址

AFAIK网址应为www.mysite.com/category/page-name-here

如果我希望做一个内容丰富的网站,并默认的类别和页面的数据库驱动的 - 这不由于约页和主页可能会发生冲突,因此请勿将网页设置为www.mysite.com/aboutwww.mysite.com/home

虽然路由引擎是灵活的,是上述可行和/或值得吗?

CNC中

只是为了阐述我的问题,是可以控制与数据库中的路由引擎?

它的URL包含一个有意义的描述很好的做法 - 例如stackoverflow.com/category/mvcstackoverflow.com/questions/seo-urls-with-asp-net-mvc好(相对于stackoverflow.com/category/9955stackoverflow.com/questions/734583

作为expirment,我想借此控制到另一个层次,可以说的是,两个控制器上述(类别和问题),每个显示动态数据可以修改为简单stackoverflow.com/mvcstackoverflow.com/seo-urls-with-asp-net-mvc

我需要确保我的数据库包含一个表,告诉我前者要作为类别路由,后者作为问题路由 - 这可以通过简单的数据库查找来实现,并且需要实施within Global.asax

我的问题是,这是否可以实现,以及潜在的缺陷是什么。

// AboutController.Index() 
routes.MapRoute( 
    "About", 
    "about", 
    new { controller = "About", action = "Index" }); 

// HomeController.Index() 
routes.MapRoute( 
    "Home", 
    "home", 
    new { controller = "Home", action = "Index" }); 

// ArticleController.Index(string category, string pagename) 
routes.MapRoute( 
    "Article", 
    "{category}/{pagename}", 
    new { controller = "Article", action = "Index" }); 

他们可能都使用相同的控制器,如果你想要,但如果他们使用的不同的人可能更容易一点:

+0

我的编码员说,这是一个很小的收获,但从我所告诉的seos,他们的整个存在是由很多很小的收益定义的很多努力。 – Gavin 2010-01-29 08:59:43

回答

5

为避免你的静态页面(约,家庭等),何况你可以采取一些不同的aproaches问题:

  1. 放在一个单独的路径的动态类别页面(例如www.mysite .com/shop/category/page-name-here)
  2. 将静态页面放在一个单独的路径中(例如www.mysite。COM /页/约)。现在你不能有一个名为“页面”的类别,但所有其他的都可以工作。
  3. 将静态路由置于动态路由之上。这并不理想,因为如果您的分类名称很差,它可能会隐藏类别页面,但即使您执行了#1或#2,您仍然希望将其作为一种即时处理措施。

其他注意事项/陷阱:

  1. 您还需要确保您的类别名称和页面名称是唯一的。在一个大型网站上,这并不总是微不足道的(甚至是实用的),这可能是为什么你看到类似堆栈溢出的网址,其中问题ID实际上在URL中,而“页面名称”部分只是SEO糖。

  2. 您需要有一个处理名称更改的策略。如果类别名称或页面名称发生更改,则需要有适当的位置将链接重新定向到新名称,以获得最大的SEO优势。您还需要确保类别/页面的新名称与其他类别/页面的旧名称不同,这会增加图片的复杂度。

这一切都说,这是可行的,它在我看来是值得的。特别是如果你期望你的大部分流量来自搜索引擎。