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

6
我们希望更改Tomcat Web应用程序的上下文根,并使旧URL引导用户到新命名的应用程序。
http://hostname/oldappname
http://hostname/newappname

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

这个简单的选项不适用于我们,因为内部公司政策禁止在同一个Tomcat实例中运行多个应用程序(不可谈判)。

我记得GlassFish有一个“备用文档根目录”的概念,可以用来给应用程序多个上下文根,你知道如何在Tomcat中实现这个吗?

2个回答

5
tomcat/webapps 下有一个名为 ROOT 的目录。
当 "contextPath" 与 Webapps 文件夹下的目录不同时,该 ROOT "应用程序" 将被调用以处理这些网址。
因此,您可以:
  1. 直接在 "ROOT" 文件夹下创建名为 "oldappname" 的文件夹。

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

每当浏览器调用 http://servername/oldappname 时,Tomcat 将呈现:webapps/ROOT/oldappname/index.html 更新:
您可以使用 ROOT 做一些有趣的事情:

Tomcat 6:如何更改 ROOT 应用程序

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


你好Mecon,谢谢你。我尝试了你的建议,它非常有效,我可能会使用它。我希望能找到一个包含在一个war文件中的解决方案,但也许这是不可能的。 - user835745
如果您被限制在一个Tomcat上运行多个应用程序,那么您应该要求他们允许您将应用程序部署为Root App。但这可能需要您更改代码中的URI。 - Mecon
告诉他们我们需要控制ROOT应用程序,因为现在ROOT目录有未经授权的代码(即Tomcat示例)。 - Mecon
@user835745,这个问题进展如何了?希望上面的建议有所帮助? - Mecon

1

一个将旧应用程序名称重定向到新应用程序名称的index.html文件示例:

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

根据Mecon的说明,将其放置在webapps/ROOT/oldappname中。

另请参阅:如何在Tomcat 7.0中设置Web应用程序的上下文路径


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接