我们最近在Tomcat 6下安装了一个Web应用程序,它通过isapi重定向程序界面(请参阅http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html)连接到IIS 7服务器。连接器在每种情况下都能正常工作,除了Web应用程序中返回状态302的一些页面,以及要重定向的新位置。
浏览器返回302并请求新位置,但IIS Web服务器不会将请求转发到Tomcat服务器并返回404错误,即使uri工作者地图对我来说是正确的。
相应的uri worker规则是:
/WebClientServlet/*=worker1
,新位置的位置网址如下所示:
http://localhost/WebClientServlet/SBS/cmd:editContent2/workflow:false/articleSearch:false/confirmed:false/objectID:131294/---/fpse/db:test/objectID:131294/Copy+of+0001-Intranet+Home-main-ip+%28DE%29
答案 0 :(得分:0)
我可以解决问题。 HTTP状态代码实际上是404.11,这意味着(在IIS 7下)不允许双重转义序列。 IIS 7中引入了一项称为双重转义URL过滤的新功能。它是一个默认的安全过滤器,它拒绝加载包含双重转义序列的任何URL。要解决此问题,请关闭用于通过isapi-redirector访问tomcat应用程序的网站的功能。请参阅http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering下的更多信息。
答案 1 :(得分:0)
抛弃ISAPI重定向器。直到今天,这是我一直在使用的。查看IIS7的Application Request Routing。 Here介绍了如何设置它。如果您想使用主机标题,请查看here。