可以在URL重写的URL中正确编码反斜杠吗?

时间:2010-05-19 10:08:31

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

我正在开发一个ASP.NET MVC2项目。问题是当一个将被重写为URL的字符串包含一个特殊字符(如反斜杠或问号)时,即使我之前编码过它,URL也会出错。

例如:

  1. 我的产品ID为“ p001 \ 2-2 ”。
  2. 我将其编码为“ p001%5C2-2
  3. 网址http://domain.com/Product/p001%5C2-2响应HTTP错误400 - 错误请求。
  4. 我怎样才能正确理解?

2 个答案:

答案 0 :(得分:5)

尝试使用Html.Encode来解决反斜杠。 如果反斜杠是id中唯一的“特殊”字符,则可以使用Replace(“%5C”,“\”)。

你检查过你的路由映射吗?必须有像

这样的路线
  

产品/ {prodictID}

答案 1 :(得分:0)

我的网址中有%2F的类似问题。尝试将nOrmalize标志附加到您的rewriteRule。

以粗体标准化标志“O”的示例:

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