C# ASP.NET MVC将两个路由合并为一个路由

C# ASP.NET MVC将两个路由合并为一个路由,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,有没有办法将这两个路由字符串:{language}/item/{itemId}/proreviews和item/{itemId}/proreviews组合成一个路由 UPD.{language}是可选的 UPD2。工作流如下:用户输入domain.com/item/1/proreviews,我将其重定向到带有相应国家代码的url,如domain.com/en/item/1/proreviews。现在我正在实现本地化,我真的不想复制所有当前(无国家代码)路线。为什么不将{language}作为最后

有没有办法将这两个路由字符串:{language}/item/{itemId}/proreviews和item/{itemId}/proreviews组合成一个路由

UPD.{language}是可选的


UPD2。工作流如下:用户输入domain.com/item/1/proreviews,我将其重定向到带有相应国家代码的url,如domain.com/en/item/1/proreviews。现在我正在实现本地化,我真的不想复制所有当前(无国家代码)路线。

为什么不将{language}作为最后一个参数,然后很容易将其设置为可选。

为什么不将{language}作为最后一个参数,然后很容易将其设置为可选的。

路由接受正则表达式。您可以找到一个与您支持的区域性相匹配的正则表达式。只要把那条路线放在默认路线之上,它就应该通过了


其他可能性包括将该语言放入cookie或作为子域(en.domain.com/item/1/proreviews)。

路由接受正则表达式。您可以找到一个与您支持的区域性相匹配的正则表达式。只要把那条路线放在默认路线之上,它就应该通过了


其他可能性包括将语言放在cookie中或作为子域(en.domain.com/item/1/proreviews)。

为什么不创建一个重写规则,以便任何不以国家/地区代码开头的URL自动添加语言(可能改为以/en/in)

这样,您将只有一个路由,因为IIS将请求传递给MVC,语言为,您的用户将不会更明智

这也意味着语言将是可选的


我应该指出的是,您可能应该对这些重写进行301,否则,您很可能会因为在不同的URL上有重复的内容而遭受SEO后果(
/en/item/1234/proreviews
将具有与
/item/1234/proreviews
相同的内容).

为什么不创建一个重写规则,以便任何不以中的国家/地区代码开头的URL自动添加语言(可能是以/en/in代替)

这样,您将只有一个路由,因为IIS将请求传递给MVC,语言为,您的用户将不会更明智

这也意味着语言将是可选的


我应该指出的是,您可能应该对这些重写进行301处理,否则,您很可能会因为在不同的URL上有重复的内容而遭受SEO后果(
/en/item/1234/proreviews
将具有与
/item/1234/proreviews
相同的内容)。

链接应该是这样的。有这样的想法会很奇怪links@ldsa-我认为这一点也不奇怪。人们通常甚至不看URL。好吧,让我们假设这是一个业务需求链接应该是这样的。有这样的想法会很奇怪links@ldsa-我认为这一点也不奇怪。人们通常甚至不看URL。好吧,让我们假设这是一个业务需求