urlrewritingnet - 保持原始URL对用户隐藏

时间:2017-04-16 05:51:43

标签: asp.net asp.net-mvc url-rewriting

我的原始网页网址就像这样

http://mydomain/product-list?Type=AllProducts&ListCategory=Category&ListCriteria=All&KeyWord=109

我希望这个网址对用户可见是这样的

http://mydomain/product-list/FURNITURE-HOUSE?Type=AllProducts&ListCategory=Category&ListCriteria=All&KeyWord=109

所以我写了urlrewritingnet这样的规则

    <add name="produktidrewrite"
     virtualUrl="^~/product-list/(.*)"
     rewriteUrlParameter="ExcludeFromClientQueryString"
     destinationUrl="~/product-list"
     redirect="Application"
     redirectMode="Permanent"
     ignoreCase="true" />

这就像我在浏览器中输入此URL一样

http://mydomain/product-list/FURNITURE-HOUSE?Type=AllProducts&ListCategory=Category&ListCriteria=All&KeyWord=109

将其重写为

http://mydomain/product-list?Type=AllProducts&ListCategory=Category&ListCriteria=All&KeyWord=109

因为您可以看到类别名称已从URL中删除。我怎么能克服这个?并确保用户也看到这样的网址

http://mydomain/product-list/FURNITURE-HOUSE?Type=AllProducts&ListCategory=Category&ListCriteria=All&KeyWord=109

1 个答案:

答案 0 :(得分:1)

我认为你的意思是.NET MVC上的自定义路由, 你实际上可以使用属性路由在Controller Action Method上执行此操作:

[Route(“{productId:int}/{productTitle}”)]
public ActionResult Show(int productId) { … }

或者您可以在此链接上看到更好的内容:looping over paths using while

CMIWW