1

我在我的应用程序中使用了 Intelligencia 的 UrlRewriter,我遇到了一个问题,我设置的规则似乎正在从我的 url 中删除 + 符号。

例如,我想拥有这些网址/category/catname/+tag+tag,但在我看来它是/category/catname/ tag tag

有没有人有任何想法,这取决于我的正则表达式吗?我已经在调节器中尝试过,它匹配得很好。

<rewriter>
  <rewrite url="^/content/(.+)$" to="~/page.aspx?name=$1" />
  <rewrite url="^/category/(.+)$" to="~/catalog.aspx?category=$1" />
  <rewrite url="^/product/(.+)$" to="~/catalog.aspx?product=$1" />
  <rewrite url="~/login/" to="~/login.aspx"/>
</rewriter>
4

1 回答 1

5

这样做的原因是因为“+”在你的重写器实际得到它之前被网络服务器解析为一个空格。文字 + 是您不能在实际 URL 中使用的东西。如果要使用 +,则需要将其引用为 %2B:“/category/catname/%2Btag1%2Btag2”。

编辑: 这是一个 URL 编码的例子这说明了一些你不能使用的字符,以及如何对它们进行编码。如果您正在为 URL 寻找更具视觉吸引力的字符,您可以尝试“-”和“_”,它们都是有效的,我建议使用“-”。该 url 的示例将是“/category/catname/-tag1-tag2”。

于 2008-10-20T14:08:28.437 回答