我使用Apache Tomcat 8.5.8部署了一个静态Web应用程序
当我调用普通网址时,它运行正常。 http://localhost/example/index.html
但是当我调用以下URL时,它会给我400个错误的请求错误。 http://localhost/example/index.html?host_info=Outlook|Web
我知道这是因为URL具有特殊字符(|)。 但我无法配置Tomcat,因为我对Tomcat配置很新。
我无法更改网址,因为它不是我生成的内容。它来自其他组成部分。
所以我真的需要配置Tomcat服务器,以便它可以接受url。
有人可以帮助我吗?
答案 0 :(得分:2)
此行为是在Tomcat 7.0.76,8.0.42和8.5.12中引入的,以符合RFC 7231
。
可以使用requestTargetAllow
中的属性catalina.properties
恢复此强制检查,以允许禁止使用字符:
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
答案 1 :(得分:1)
尝试使用tomcat 8.0。*而不是8.5 我之前也遇到过同样的问题,我不得不将tomcat降级到8.0.28