Java 当URL路径中有特殊字符时,将Apache ProxyPass或Mod_jk与Tomcat一起使用
我正在努力解决ProxyPass中的一个问题。我已经尝试使用Apache和Nginx来使用tomcat设置Proxypass。除了URL中有任何字符外,一切都很好。 我不知道这是Apache中的一个bug还是什么,我在程序中作为代理从Apache获得的请求URI不同于不使用代理的Tomcat。我正在Javaservlet中使用Java 当URL路径中有特殊字符时,将Apache ProxyPass或Mod_jk与Tomcat一起使用,java,apache,tomcat,servlets,proxy,Java,Apache,Tomcat,Servlets,Proxy,我正在努力解决ProxyPass中的一个问题。我已经尝试使用Apache和Nginx来使用tomcat设置Proxypass。除了URL中有任何字符外,一切都很好。 我不知道这是Apache中的一个bug还是什么,我在程序中作为代理从Apache获得的请求URI不同于不使用代理的Tomcat。我正在Javaservlet中使用“request.getRequestURI()”。 例如,如果URL是 /movies/logs, logs 使用Apache或Nginx安装程序ProxyPass或M
“request.getRequestURI()”
。
例如,如果URL是
/movies/logs, logs
使用Apache或Nginx安装程序ProxyPass或Mod_jk我得到:
/movies/logs,%20logs
如果我直接使用Tomcat,我得到:
/movies/logs%2C%20logs
理想情况下,我希望URL与我在Tomcat中收到的URL相同。有人能帮我解决这个问题吗
非常感谢 默认情况下,Apache会在进一步传递URL之前对URL进行规范化,显然,只有tomcat才能做到这一点。要防止mod_proxy修改URL,请将关键字添加到ProxyPass指令
请注意,空格和逗号在中都被视为不安全的,不应在未设任何风景线的情况下使用。URL不应包含空格,它应包含%20个转义符,其他转义符也应如此。这里真正的问题是客户。