【问题标题】:Tomcat - redirect old context root to new context rootTomcat - 将旧上下文根重定向到新上下文根
【发布时间】:2015-08-10 00:31:22
【问题描述】:

我们想要更改 Tomcat Web 应用程序的上下文根目录,并让旧 URL 将用户引导到新命名的应用程序。

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

执行此操作的一种方法是部署具有 newappname 上下文根的应用程序和另一个具有 oldappname 上下文根的应用程序,并让它引导用户访问新 URL。

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

我记得 GlassFish 有一个“备用文档根”的概念,可用于为应用程序提供多个上下文根,知道如何在 Tomcat 中执行此操作吗?

【问题讨论】:

    标签: java tomcat servlets contextroot


    【解决方案1】:

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

    这个ROOT“应用程序”最终会被那些“contextPath”与Webapps文件夹下的目录不同的URL调用。

    所以你可以:

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

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

    每当浏览器调用 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

    【讨论】:

    • 您好 Mecon,谢谢您,我已经尝试过您的建议,效果很好,我可能会使用。我希望找到所有包含在一个战争文件中的东西。也许这是不可能的。
    • 如果您被限制在一个 Tomcat 上运行多个应用程序,那么您应该要求他们允许您将应用程序部署为根应用程序。 .. 但这可能需要您更改代码中的 URI。
    • 告诉他们我们需要控制 ROOT 应用,因为现在 ROOT 目录有未经授权的代码(即 Tomcat 示例)。
    • @user835745 这个问题怎么样了?希望以上建议有所帮助?
    【解决方案2】:

    从 oldappname 重定向到 newappname 的 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-30
      • 2011-10-03
      • 2018-06-24
      • 2019-10-04
      • 2016-08-24
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多