有没有办法将这两个路由字符串:{language}/item/{itemId}/proreviews和item/{itemId}/proreviews组合成一个路由?
UPD. {language}是可选的。
UPD2.工作流程如下:用户输入domain.com/item/1/proreviews,我将他重定向到url,并使用相应的国家代码,如domain.com/en/item/1/proreviews。现在我正在实现本地化,我真的不想复制我的所有当前(无国家代码)路线。
发布于 2010-12-09 10:14:46
路由接受正则表达式。您可以找到一个与您支持的区域性相匹配的正则表达式。只要将该路径置于默认路径之上,它就会通过。
其他可能性包括将语言放入cookie中,或者作为子域(en.domain.com/item/1/proreviews)。
发布于 2010-12-09 09:41:31
为什么不把{language}作为最后一个参数,这样就很容易使它成为可选的。
发布于 2010-12-09 11:05:54
为什么不创建一个单一的重写规则,以便任何不以国家代码开头的urls都自动添加语言(可能是使用/en/ in )。
这样,您将只有一条路径,因为IIS将使用该语言将请求传递给MVC,您的用户也不会更明智。
这也意味着语言将是可选的。
不过,我应该指出,您可能应该重写301个这些内容,否则,您很可能会因为在不同的urls上有重复的内容而遭受SEO的后果(/en/item/1234/proreviews
将具有与/item/1234/proreviews
相同的内容)。
https://stackoverflow.com/questions/4401221
复制相似问题