我在我的应用程序中使用了Intelligencia的UrlRewriter,我遇到了一个问题,我设置的规则似乎正在剥离我的url中的+符号。
例如,我想要将urls设置为/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>发布于 2008-10-20 14:08:28
它这样做的原因是,在你的重写器真正得到"+“之前,”+“被get服务器解析为一个空格。litteral +是不能在实际URL中使用的东西。如果你想使用+,那么你需要像%2B一样引用它:"/category/catname/%2Btag1%2Btag2“。
编辑:Here is an example of URL encoding这说明了一些你不能使用的字符,以及如何对它们进行编码。如果你正在为URL寻找更具视觉吸引力的字符,你可以尝试"-“和"_”,这两个都是有效的,我建议使用"-“。url的一个例子是"/category/catname/-tag1-tag2“。
https://stackoverflow.com/questions/218554
复制相似问题