If the context path of an application contains slashes (e.g. "a/b") the method getPathWithoutContext of class org.apache.catalina.ssi.SSIServletExternalResolver simply cuts from the second slash, so for url "/a/b/do?.." it tries to include "b/do?.." instead of "do?..". The patch is to include the context path and strip the path off: Line 419 String noContext = getPathWithoutContext(normContext.getContextPath(), normalized); Line 356ff protected String getPathWithoutContext(final String contextPath, final String servletPath) { if (servletPath.startsWith(contextPath)) { return servletPath.substring(contextPath.length()); } return servletPath; }
Thanks for the patch. It has been applied to trunk and proposed for 6.0.x.
This has been fixed in 6.0.x and will be included in 6.0.19 onwards. Thanks again for the patch.