我遇到一个问题,我的网址是两次URL编码。我们有一项功能可以检测访问者访问的网页是否需要SSL。如果是,我们重定向到相同的URL,但使用HTTPS而不是HTTP,反之亦然。我们遇到的问题是当我们在具有特殊字符(捷克字符)的URL上从HTTPS重定向到HTTP时
我将通过示例展示,也许有人可以解释发生了什么。
如您所见,生成的URL是两次URL编码。我们用于此操作的代码以
开头string newUrl = Request.Url.AbsoluteUri.Replace("https://", "http://");
调试此newUrl已经过两次URL编码,如上面的步骤3所示。
如果我查看Request.RawUrl,它根本不是URL编码的。知道出了什么问题吗?也许我必须使用RawUrl来自己构建协议等?
已经进行了进一步的测试,我认为SSL完全没有任何关系。在正常页面上,当我检查Request.Url.AbsolutPath时,它也被编码两次。