根據rfc規範,url中不允許有 |,{,}等特殊字符,但在實際生產中還是有些url有可能攜帶有這些字符,特別是|還是較爲常見的。在tomcat升級到7以後,對url字符的檢查都變嚴格了,如果出現這類字符,tomcat將直接返回400狀態碼。
在tomcat目錄/conf/catalina.properties下找到並修改
tomcat.util.http.parser.HttpParser.requestTargetAllow=|,{,}
該項設置在以下版本的tomcat中有效:
-
8.5.x for 8.5.12 onwards
-
8.0.x for 8.0.42 onwards
-
7.0.x for 7.0.76 onwards