Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当URL路径中有特殊字符时,将Apache ProxyPass或Mod_jk与Tomcat一起使用_Java_Apache_Tomcat_Servlets_Proxy - Fatal编程技术网

Java 当URL路径中有特殊字符时,将Apache ProxyPass或Mod_jk与Tomcat一起使用

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

我正在努力解决ProxyPass中的一个问题。我已经尝试使用Apache和Nginx来使用tomcat设置Proxypass。除了URL中有任何字符外,一切都很好。 我不知道这是Apache中的一个bug还是什么,我在程序中作为代理从Apache获得的请求URI不同于不使用代理的Tomcat。我正在Javaservlet中使用
“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个转义符,其他转义符也应如此。这里真正的问题是客户。