2

我有许多在 Tomcat 中运行的应用程序。每个人都有自己的背景。我使用 Apache HTTP Server 将它们全部连接到不同的域名,并且mod_jk(请参阅此问题的更多详细信息:How to mount context-referenced Tomcat application with mod_jk?)。工作正常,但是当应用程序生成它们的网页时,所有 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。

4

1 回答 1

4

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

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

于 2011-03-02T11:21:48.713 回答