我有一个
形式的网址/search/search-terms
在RewriteRules.config中描述,以匹配正则表达式
^search/(.*)$
该操作将其重写为
Search.aspx?value={R:1}
将appendQueryString
设置为true
。
一切都很好,直到我在搜索词中添加&符号(&)。我将“term1& term2”编码为URL字符串
/search/term1%26term2
但此网址仅匹配term1
。我不确定是什么导致这种情况,是否存在URL中的百分号或错误的编码。我所知道的是Request["value"]
仅返回term1
,所以这不是我的逻辑问题,而是URL重写本身。
如何获取整个字符串,包括转义的&符号?然后我的逻辑正确解码转义的实体;我知道这是因为它在localhost中工作,没有重写。
答案 0 :(得分:0)
事实证明,没有解决方案:百分号符合重写规则的匹配。我不得不对查询字符串进行编码和解码,用其他单词替换将URL -conconded转换为百分号符号的特殊字符(如空格到%20和&符号到%26)。