前端网络服务器:Windows Server 2008 R2 SP1
后端 Web 服务器:Tomcat 5.5 -- JSP/Servlet 引擎
前端和后端 Web 服务器由 AJP 连接器链接,AJP 连接器是在 IIS 上运行的 isapi 过滤器。
Tomcat 和 IIS 在同一台服务器上。
我有许多文件夹,其中的文件以 .HTML 结尾。这些文件位于 Tomcat 从中读取的同一目录中,即 wwwroot/tomcat_webapp/HTMLProjectFiles。 AJP 连接器——或 isapi 过滤器——将负责将任何内容从 tomcat_webapp 文件夹传递给 tomcat。
我需要让 Tomcat 处理它们,但我无法将文件重命名为 JSP。 Tomcat 的 web.xml 不允许通过目录和扩展名进行过滤(即 /HTMLProjectFiles/*.html 无法完成并将生成错误)。我不想让 JSP 处理所有 HTML 页面。
我的想法是使用 IIS 的 URL 重写引擎。我创建了一个入站规则,它用 JSP 扩展重写文件。不幸的是,它不起作用。我认为 isapi 过滤器可能在 URL 重写引擎触发之前触发,因此 IIS 永远不会将文件推送到 Tomcat。至少,那不是我的直觉。我不确定为什么它不起作用,或者 IIS 中是否存在 URL 重写和 isapi 过滤器模块的优先顺序。
有人在这方面有过成功或类似的经验吗?
更新
我的直觉是 IIS 扫描 URL,发现 tomcat_webapp 文件夹存在并且不会费心查看页面,只是将它发送到 Tomcat。然后,tomcat 只是按原样显示页面。目前,Tomcat 的 web.xml 将 html 作为静态页面进行处理。所以,我可能不得不研究直接与 tomcat 一起使用的 url 重写。我不认为 mod_rewrite 可以工作,因为我没有运行 Apache。
非常感谢。
最佳答案
如果您能提供部署的演示文件夹结构,将会有所帮助。据我目前的理解,它可以通过以下方式解决:
- 使用一个条目更新您的 uriworkermap.properties,该条目指定 html 资源目录的 URL 并将工作程序与其相关联。示例:portal.com/tomcat_webapp/html_folder_name/*=worker1
关于jsp - IIS URL Rewrite 无法正常工作以将 html 更改为 jsp 页面并通过 AJP 连接器路由到 Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25168766/