Wordpress受到高度重视,并被证明遵循良好做法,这反过来又有助于利用搜索引擎进行排名。
一个经证实的因素是seo freindly urls。如下面的例子;
www.myblog.com/test
www.myblog.com/another
www.myblog.com/contact
假设我们有两个控制器,每个都有他们的胜利行动;
View/BlogPost
View/BlogCategory
Contact/Form
Contact/Post
wordpress视图引擎足够灵活,测试网址可以解析为BlogPost,另一个网址可以解析为BlogCategory。
有没有人知道这是否可以在MVC中使用并且可行吗?我正在考虑一个自定义404处理程序,它将保留浏览器中的URL,然后触发所需的操作。
答案 0 :(得分:1)
您可以像这样定义global.asax中的路由,最下面的路由是默认路径:
routes.MapRoute(
"Test",
"test",
new { controller = "View", action = "BlogPost"}
);
routes.MapRoute(
"Another",
"another",
new { controller = "View", action = "BlogCategory"}
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
MapRoute()中的第二个参数是URL,在您的情况下为“test”和“another”。您可以在这里看到,您可以将此路由数据存储在其他位置,例如db,然后通过它们将每个路由数据添加到RouteCollection。
答案 1 :(得分:0)
您可以通过RedirectToAction()
调用
...
public ActionResult test()
{
return RedirectToAction("BlogPost");
}
..
public ActionResult another()
{
return RedirectToAction("BlogCategory");
}
...
答案 2 :(得分:0)
正如其他人回答的那样,很容易有这样的路线来拥有友好的“Slug”网址。还有一些技巧可以构建非常干净的URL,如WordPress。我已就此主题撰写了两篇博文,可帮助您更好地了解Slug网址:Build pretty clean URL for your dynamic pages using JavaScript和Translating your content title using Google Translate API to use in a URL