开发者

Can backslash be encoded correctly in URL with URL rewrite?

I am working on an ASP.NET MVC2 project. The problem is when a string which would b开发者_StackOverflow社区e rewritten into URL contains a special character such as backslash or question mark, the URL will be wrong, even if I have encoded it before.

For example:

  1. I have a product id "p001\2-2".
  2. I encoded it into "p001%5C2-2"
  3. The URL http://domain.com/Product/p001%5C2-2 responds HTTP Error 400 - Bad Request.

How can I get it correct?


Try to use Html.Encode to resolve your backslash. If the backslash is the only 'special' character in your id, you could use Replace("%5C","\").

Have you checked your routingMap? there has to be a route like

Product/{prodictID}


I had a similar problem with %2F in my URLs. Try appending the nOrmalize flag to your rewriteRule.

Example with normalize flag "O" in bold:

RewriteRule ^(.*)index\.html?$ http://www.yoursite.com/$1 [R=301,L,**O**]
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜