在实现 seo url 时是否有明确的DO 和DONT?许多好的做法对于 .html 网站来说似乎很好,但在中型/大型数据库网站上就会失效。
据我所知,网址应该是 www.mysite.com/category/page-name-here
如果我想制作一个内容丰富的网站并且默认类别和页面是数据库驱动的 - 这是否会阻止我拥有诸如 www.mysite.com/about 或 之类的页面www.mysite.com/home 因为关于和主页可能会发生冲突。
虽然路由引擎很灵活,但上述是否可行和/或值得吗?
-编辑-
只是详细说明我的问题,是否可以用数据库控制路由引擎?
URL 最好包含有意义的描述 - 例如 stackoverflow.com/category/mvc 和 stackoverflow.com/questions/seo-urls-with-asp-net -mvc 很好(相对于 stackoverflow.com/category/9955 和 stackoverflow.com/questions/734583)
作为过期,我想将控制提升到另一个层次,假设上面的两个 Controller (类别和问题),每个显示动态数据的 Controller 都可以修改为简单的 stackoverflow.com/mvc 和 stackoverflow.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/