我们最近在 Tomcat 6 下安装了一个 Web 应用程序,它通过 isapi 重定向器接口(interface)(参见 http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html)连接到 IIS 7 服务器。连接器在任何情况下都可以正常工作,除了 Web 应用程序中的某些页面返回状态 302 以及要重定向到的新位置。
浏览器返回 302 并请求新位置,但 IIS Web 服务器不会将请求转发给 Tomcat 服务器,而是返回 404 错误,即使 uri worker map 对我来说看起来是正确的。
对应的uri worker规则是:
/WebClientServlet/*=worker1
新位置的位置 url 如下所示:
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
最佳答案
我可以解决这个问题。 HTTP 状态代码实际上是 404.11,这意味着(在 IIS 7 下)不允许双重转义序列。 IIS 7 中引入了一项新功能,称为双重转义 URL 过滤。它是一个默认的安全过滤器,拒绝加载任何包含双重转义序列的 URL。为了解决这个问题,将用于通过isapi-redirector 访问tomcat 应用程序的网站关闭该功能。查看更多 http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering .
关于apache - isapi 重定向程序未正确处理 Tomcat 和 IIS 7.0 之间的重定向状态代码 302,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3883587/