0

我遇到了 URL 编码问题。当我在浏览器上执行 URL 时,服务器一次又一次地对其进行编码,但是 URL 已经编码为 UTF-8。

eg. http://test.com:80/?gotoUrl=http%3A%2F%2Fclosewindow.xyz.com&modal=true

I am getting - https://test.com/?gotoUrl=http%253A%252F%252Fclosewindow.xyz.com&modal=true

我在 HTTPS 上运行我的应用程序并将 80 上的任何请求重定向到 HTTPS 安全端口 443。仅当我在端口 80 上发送请求并且服务器将其重定向到安全端口 443 时才会出现此问题。如果我在安全端口 443 上发出请求,则此不会出现问题。

以下是我的tomcat配置,

<Connector port="8080" 
           protocol="HTTP/1.1" 
           connectionTimeout="5000" 
           compression="on"
           compressionMinSize="128"
           compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,text    /json,
                                 application/x-javascript,application/javascript,application/json" 
           enableLookups="false"
           maxPostSize="4096"
           URIEncoding="UTF-8"
       redirectPort="8443"

/>
<Connector  port="8009" 
            protocol="AJP/1.3" 
            URIEncoding="UTF-8"
/>

<Connector
   protocol="HTTP/1.1"
   port="8443" maxThreads="200"
   scheme="https" secure="true" SSLEnabled="true"
   keystoreFile="/path/keystore" keystorePass="password"
   clientAuth="false" sslProtocol="TLS"/>

我的环境就像前面的 Apache2.2,tomcat7.x 通过 AJP 与 Apache 服务器连接。

我深入研究了这个问题,发现问题归结于使用 iso-8859-1 的 AJP,但是 tomcat 和 Apache 工作正常并使用 UTF-8 编码。无论如何在AJP中将编码设置为UTF-8?我正在使用 mod_proxy_ajp。

提前致谢。我将不胜感激这方面的任何帮助。

4

1 回答 1

0

我建议浏览器正在这样做。Tomcat 这样做是没有意义的。Tomcat 将是解码,而不是编码。在完全没有编码的浏览器中尝试。

于 2013-09-25T12:13:03.577 回答