asp.net-mvc - 使用 ASP.NET MVC 的 SEO URL

标签 asp.net-mvc routing seo

在实现 seo url 时是否有明确的DODONT?许多好的做法对于 .html 网站来说似乎很好,但在中型/大型数据库网站上就会失效。

据我所知,网址应该是 www.mysite.com/category/page-name-here

如果我想制作一个内容丰富的网站并且默认类别和页面是数据库驱动的 - 这是否会阻止我拥有诸如 www.mysite.com/about 之类的页面www.mysite.com/home 因为关于和主页可能会发生冲突。

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

-编辑-

只是详细说明我的问题,是否可以用数据库控制路由引擎?

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

作为过期,我想将控制提升到另一个层次,假设上面的两个 Controller (类别和问题),每个显示动态数据的 Controller 都可以修改为简单的 stackoverflow.com/mvcstackoverflow.com/seo-urls-with-asp-net-mvc

我需要确保我的数据库包含一个表,该表告诉我前者将作为类别路由,而后者作为问题路由 - 这可以通过简单的数据库查找来实现,并且需要在全局.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" });

如果您愿意,他们可以都使用相同的 Controller ,但如果他们使用单独的 Controller ,可能会更容易一些。

唯一的问题是如果您有一个名为“关于”或“家”的类别,但我认为这不太可能。

还应该注意的是you don't have to use ASP.NET MVC to use the routing capability .

关于asp.net-mvc - 使用 ASP.NET MVC 的 SEO URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734583/

相关文章:

ajax - _escape_fragment_ 的重写规则

c# - 我应该将 await 与 async Action 方法一起使用吗?

asp.net-mvc - Controller 静态方法中的ViewBag

asp.net-mvc - 在ASP.NET MVC 2.0中进行路由

ruby-on-rails - 嵌套 form_for 单一资源

java - Play Framework 2.2.1 - 不区分大小写的路由

javascript - 检测数据变化

javascript - 一个浏览器窗口中有两个 Web 应用程序 - 一个不需要刷新,而第二个需要刷新

由 <object> 标签呈现的外部 html 页面上的 SEO

apache - htaccess 重写 index.php 并在没有 www 的情况下重定向