创建搜索引擎友好的URL在ASP.NET MVC(Creating search engine fr

2019-09-19 11:56发布

我想开发的URL看起来像如下:

http://mysite.com/products/1/best-product-in-the-world

所有我需要得到适当的记录是以下路线:

http://mysite.com/products/1

当我的产品说明部分添加到URL(“最好的产品,在这世界”)我得到URL编码问题。 我试着在ActionLink的(...)构建自己的网址的这一部分时使用Server.UrlEncode:

<%= Html.ActionLink(item.Subject, "../Post/Detail", 
    new { id = item.ID, 
          descriptiveUrl = Server.UrlEncode(Product.ShortDescription) }, 
    new { rel = "canonical", 
          title = Product.ShortDescription, 
          @class = "product-hyperlink" })%>

但是,这对于呈现特殊字符和空格定期编码的元素,就像下面:

http://localhost:2392/Products/Detail/1/best+product+in+the+world253f

......它创建了一个400错误的请求例外。 不知道我已经做了公正问题,但可以提供如需要进一步澄清。

更新 :这个帖子的网址如下,我尝试做一些非常相似!

http://stackoverflow.com/questions/1148955/creating-search-engine-friendly-urls-in-asp-net-mvc

Answer 1:

一个简单的办法是一个属性向下添加到与该正常化(在这种情况下简短描述)的适当字段的存取器模型对象到一个合适的“塞”; 也就是说,标识后的垃圾文字的位。 构建URI时,您再使用它。

归一化处理可以是如去除任何非字母数字字符,并用连字符替换空格一样简单。



Answer 2:

在更深的谷歌搜索,我发现下面的链接,产生蛞蝓:

http://www.intrepidstudios.com/blog/2009/2/10/function-to-generate-a-url-friendly-string.aspx

感谢@Rob和@Coding轮子给我我真的需要找到答案的术语!



Answer 3:

这里的标准做法是储存“塞”与每个职位将作为这篇文章的朝外的URL的功能。 例如,你对上述职位蛞蝓将是:

best-product-in-the-world

一个体面的CMS将自动为您做到这一点,并允许您在保存之前调整蛞蝓。



文章来源: Creating search engine friendly URL's in ASP.NET MVC