有没有一个确定的DO and DONT当实施 seo url 时?许多好的做法对于 .html 网站来说似乎很好,但在中型/大型数据库网站上却失效了。
据我所知,网址应该是www.mysite.com/category/page-name-here
如果我希望创建一个内容丰富的网站,并且默认类别和页面是数据库驱动的 - 这是否会阻止我拥有诸如www.mysite.com/about or www.mysite.com/home因为关于页面和主页可能会发生冲突。
尽管路由引擎很灵活,但上述可行和/或值得吗?
-edit-
只是为了详细说明我的问题,是否可以用数据库控制路由引擎?
网址最好包含有意义的描述 - 例如stackoverflow.com/category/mvc and stackoverflow.com/questions/seo-urls-with-asp-net-mvc很好(相对于stackoverflow.com/category/9955 and stackoverflow.com/questions/734583)
作为一个实验,我想将控制提升到另一个层次,假设上面的两个控制器(类别和问题),每个显示动态数据可以修改为简单的stackoverflow.com/mvc and stackoverflow.com/seo-urls-with-asp-net-mvc.
我需要确保我的数据库包含一个表,告诉我前者将作为类别路由,后者作为问题路由 - 这可以通过简单的数据库查找来实现,并且需要在 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" });
如果您愿意,它们都可以使用相同的控制器,但如果它们使用单独的控制器可能会更容易一些。
您遇到的唯一问题是,如果您有一个名为“关于”或“家庭”的类别,但这不太可能是我想象的。
还应该指出的是您不必使用 ASP.NET MVC 来使用路由功能 http://msdn.microsoft.com/en-us/library/cc668202.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)