我在Tomcat中运行了许多应用程序。每个人都有自己的背景。我使用Apache HTTP Server和mod_jk
将它们全部链接到不同的域名(请参阅此问题的更多详细信息:How to mount context-referenced Tomcat application with mod_jk?)。工作正常,但是当应用程序生成他们的网页时,所有URL仍然有他们的上下文:
http://www.example.com/
转到http://www.example.com:8080/my-context/
http://www.example.com:8080/my-context/
生成一个网页/my-context/some-page.jsf
我希望在第三步中看到/some-page.jsf
。需要注意的是,我无法更改应用程序内部。它们由第三方提供。我所能做的就是配置Tomcat或Apache HTTP Server。
答案 0 :(得分:4)
这有点复杂,但您可以使用网址重写器,例如tuckey 重写出站URL,删除/ my-context前缀(“出站URL”我指的是在webapp内生成的URL)。在http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/index.html查看元素的文档。
要使用您的webapp进行tuckey工作,您需要向应用程序的web.xml添加声明。从技术上讲,这意味着“修改应用程序”,但它是微创的。如果由于某种原因你甚至无法触摸web.xml(不知道为什么),我似乎想起了一种在Tomcat的webapp上外部强制使用过滤器(而不是阀门)的方法,但这种情况还有很长的路要走。