我遇到了 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。
提前致谢。我将不胜感激这方面的任何帮助。