我的网站在首页以 30 多种语言显示用户提交的内容,我目前使用的路径如下:
http://www.example.com?lang=en
或者如果它不是第一页
http://www.example.com?lang=en&page=2
但这确实对用户或 seo 不友好。mvc中有没有办法将这些值路由到类似的东西
http://www.example.com/en
和
http://www.example.com/en/2
在这种情况下,无需在中间添加新的操作lang
:
http://www.example.com/lang/en/2
更新。这是我从 Alexeis 的回答中得出的,以防有人需要同样的东西:
如果只是语言:
routes.MapRoute("MyLang", "{lang}", new { controller = "Home", action = "Index" },new { lang = @"\D{2}"});
如果您需要语言和可选页面:
routes.MapRoute("MyLang", "{lang}/{page}", new { controller = "Home", action = "Index", page = UrlParameter.Optional }, new { lang = @"\D{2}", page = @"\d+"});
除非您的操作只有 2 个字母,否则它不应捕获任何其他路径。