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

发布于 2024-09-02 05:56:46 字数 314 浏览 1 评论 0原文

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

例如:

  1. 我有一个产品 ID“p001\2-2”。
  2. 我将其编码为“p001%5C2-2
  3. URL http://domain.com/Product/p001%5C2-2 响应 HTTP 错误 400 - 错误请求。

我怎样才能得到正确的结果?

I am working on an ASP.NET MVC2 project. The problem is when a string which would be 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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

秋千易 2024-09-09 05:56:46

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

你检查过你的路由映射吗?必须有一条像这样的路线

产品/{productID}

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}

久而酒知 2024-09-09 05:56:46

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

规范化标志“O”以粗体显示的示例:

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

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**]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文