多语种网站ASP.NET 视
-
08-07-2019 - |
题
当建立一个多语种网站(与ASP.NET 网络的形式),我将使用HTTP模块改写该网址最终与一些友好(对人类和搜索引擎),如:
uk/products/product_category_one/sub_category_one/index.aspx
uk/products/product_category_one/sub_category_one/widget_mk5.aspx
es/productos/categoría_de_producto_una/widget_mk5.aspx
我(新)的理解的视是,网址应该采取的格式
控制器/行动/的标识符
所以复制的功能上与视最终会与类似的网址为:
products/category/123/product_category_one/sub_category_one
products/items/456/widget_mk5
问题..
- 我可以插入一个国家代码进入URL前的'控制'部分?
- 它是可能的地图产品"和"产品'相同的控制器吗?
谢谢你的帮助
编辑: 此外,Panos'回答下面我发现了更多的信息 ASP.NET 网站.
解决方案
该网址可以采取的几乎任何其他形式要你喜欢。更多的信息,检查 ASP.NET 视的框架(第2部分):URL路由.刚开始(因为我不知道如果这是最佳解决方案),可以添加两个新的路线,在全球性的。asax:
routes.MapRoute(
"ukRoute",
"{lang}/Products/{action}/{id}/{subcategory}",
new { lang = "uk", controller = "Products", action = "Index", id = "", subcategory = "" }
);
routes.MapRoute(
"esRoute",
"{lang}/Productos/{action}/{id}/{subcategory}",
new { lang = "es", controller = "Products", action = "Index", id = "", subcategory = "" }
);
这些路线的了解以下网址(和地图,他们两个的 ActionResult Category(string id, string subcategory)
方法 ProductsController
):
uk/Products/Category/1/A
es/Productos/Category/1/A
如果你想要建立这种网址在你的看法你可以用这样的:
<%= Html.RouteLink("English 1.A", "ukRoute", new { lang = "uk", action = "Category", id = "1", subcategory = "A" })%>
<%= Html.RouteLink("Spanish 1.A", "esRoute", new { lang = "es", action = "Category", id = "1", subcategory = "A" })%>
其他提示
你可以这样做,但是请记住,并非所有国家的语言。例如,en-gb是通常表示为英国的英语,或者更具体地说,大不列颠区域对于英文的内容,例如。如果可以的话,它的价值以下的RFC1766衍生的公约,对于语言的区域。
搜索引擎,实际上往往做一个相当好的工作,处理与内容的谈判,通过这种方式,所以你不必一定拥有独立的Uri相同的内容在不同的语言。谷歌日本将爬与ja-JP作为接受的语言标题为例。
不隶属于 StackOverflow