我们在产品中构建了一个“重定向”引擎,因此我们的客户可以添加/编辑/删除自定义重定向,而无需我们在服务器上维护一堆重写规则。
在传递到我们代码中的 URL 中出现了一些问题。我们从 Coldfusion 填充的属性中提取这些CGI.QUERY_STRING
(它接收 IIS/Coldfusion 抛出的 404,它将错误的 URL 附加为查询字符串,如?404;http://www.mysite.com:80/nonexistent-file.cfm
)。
我们看到的是一些特殊字符在其中得到了一个额外的字符(一个 Â)字符。取这个 URL(%A9 是版权符号):
http://www.mysite.com/%A9/
报告CGI.QUERY_STRING
为:
http://www.mysite.com:80/©/
我不知道这个额外的“”是从哪里来的。我有一种预感,这是由 IIS 引入的,但它也可能与 Coldfusion 一起使用,因为它必须填充CGI
变量。
关于为什么会发生这种情况以及如何解决它的任何想法?似乎并非所有百分比编码/特殊字符都这样做......
编辑:
我可能会放弃我的确切问题,但是,知道为什么 IIS 或 Coldfusion 会抛出这个额外的字符(特别是对于某些转义序列而不是其他转义序列)仍然是有益的。