如何使用 Tomcat 在其 URL 中隐藏应用程序上下文?

2024-01-08

我有许多应用程序在 Tomcat 中运行。每个人都有自己的背景。我使用 Apache HTTP Server 将它们全部连接到不同的域名,并且mod_jk(请参阅此问题的更多详细信息:如何使用 mod_jk 挂载上下文引用的 Tomcat 应用程序? https://stackoverflow.com/questions/5138865)。工作正常,但当应用程序生成网页时,所有 URL 仍然有其上下文:

  1. http://www.example.com/http://www.example.com:8080/my-context/
  2. http://www.example.com:8080/my-context/生成一个网页
  3. 网页包含 URL/my-context/some-page.jsf

我想看看/some-page.jsf在第三步中。需要注意的是,我无法更改应用程序的内部结构。它们由第三方提供。我所能做的就是配置 Tomcat 或 Apache HTTP Server。


这有点复杂,但您可以使用 URL 重写器,例如tuckey http://www.tuckey.org/urlrewrite/重写出站 URL,删除 /my-context 前缀(“出站 URL”是指在您的 web 应用程序内部生成的 URL)。查看该元素的文档:http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html.

要使 tuckey 与您的 web 应用程序配合使用,您需要将声明添加到应用程序的 web.xml 中。从技术上讲,这意味着“修改应用程序”,但它是微创的。如果由于某种原因你甚至无法触及 web.xml(不知道为什么),我似乎记得一种在 Tomcat 中的 web 应用程序上外部施加过滤器(而不是阀门)的方法,但这已经很远了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Tomcat 在其 URL 中隐藏应用程序上下文? 的相关文章

随机推荐