我想为我的ASP.NET MVC网站实现一个SEO友好的URL。Asp.net MVC SEO Friendly URL
目前我有一个像网址:
http://www.domain.com/product?id=productid
,但现在我要重写我的网址,如:
http://www.domain.com/productname
所以请任何人都可以帮助我在上面......
我想为我的ASP.NET MVC网站实现一个SEO友好的URL。Asp.net MVC SEO Friendly URL
目前我有一个像网址:
http://www.domain.com/product?id=productid
,但现在我要重写我的网址,如:
http://www.domain.com/productname
所以请任何人都可以帮助我在上面......
请尝试下面的解决方案。在global.asax.cs
routes.MapRoute(
"Product",
"{productName}",
new { controller = "Product", action = "Index" },
new { productName = UrlParameter.Optional }
);
但你需要productName
保持独特性和产品控制器(即指数在行动产品控制器通过获取记录:
public ActionResult index(string productName)
{
//do something regarding get product by productname
}
您可以用这种方式向您的MVC路由引擎添加路由 -
在Global.asax.cs
routes.MapRoute(
"Product",
"{controller}/{productId}/{productName}",
new { controller = "Product", action = "Index" },
new { productId = UrlParameter.Optional , productName = UrlParameter.Optional }
);
这将让你有URL像
www.domain.com/productid/productname
你可能会或可能无法达到
www.domain.com/productname
的原因是,产品名称ISN” t标识符并且不能用于唯一地查找记录。你需要一个URL中的标识符。
Ex - 在SO中查看这个问题的URL,它有ID,然后附加SEO友好测试。
http://www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx – 2014-04-06 10:18:34
在Global.asax创建一个新的途径来处理这个:
routes.MapRoute(
"productId", // Route name
"productId/{id}/{name}", // URL with parameters
new { controller = "Home", action = "productId", id = 1234, name = widget } // Parameter defaults
);
Asp.Net MVC具有路由内置的,所以没有必要为URL重写。
详情here
这是对于初学者最好的文章 - > SEO Friendly URls
文章还介绍了如何删除的空白字符和破折号。
HTTP://ofps.oreilly。 com/titles/9781449320317/ch_Routing.html – 2013-02-28 06:42:32