Tomcat - 将旧的上下文根重定向到新的上下文根

Tomcat - redirect old context root to new context root

我们想要更改 Tomcat 网络应用程序的上下文根,并让旧的 URL 引导用户访问新命名的应用程序。

http://hostname/oldappname
http://hostname/newappname

一种方法是部署上下文根为 newappname 的应用程序和另一个上下文根为 oldappname 的应用程序,并让它引导用户到新的 URL.

这个简单的选项不对我们开放,公司内部政策禁止 运行 在同一个 Tomcat 实例中使用多个应用程序(不可协商)。

我记得 GlassFish 有一个 "Alternate document root" 的概念,可以用来为应用程序提供多个上下文根,知道如何在 Tomcat 中做到这一点吗?

tomcat/webapps 下有一个名为 ROOT 的目录。

这个 ROOT "app" 最终会为那些 "contextPath" 与 Webapps 文件夹下的目录不同的 URL 调用。

所以你可以:

  1. 直接在 "ROOT" 文件夹下创建名为 "oldappname" 的文件夹。

  2. 在 "oldappname" 文件夹中创建一个 index.html,并使其具有 Javascript 以将浏览器重定向到新的 URL。

每当浏览器调用 http://servername/oldappname 时,tomcat 将呈现:webapps/ROOT/oldappname/index.html

更新:

你可以用 ROOT 做一些有趣的事情:

Tomcat 6: How to change the ROOT application

https://tomcat.apache.org/tomcat-7.0-doc/config/context.html

从旧应用名重定向到新应用名的 index.html 文件示例:

<html>
<head>
<script type="text/javascript">
window.location.href = "/newappname";
</script>
</head>
</html>

将按照 Mecon 上面的描述放置在 webapps/ROOT/oldappname 中。

另请参阅:How to set the context path of a web application in Tomcat 7.0