在 Spring Boot 中,如何重定向上下文路径之外?

Mat*_*hew 1 java tomcat spring-boot

我有一个 Spring Boot 应用程序,在我定义的属性文件中:

server.servlet.context-path= /myapp
Run Code Online (Sandbox Code Playgroud)

如果我去的话,http://localhost/myapp我会看到一切都如预期的那样。但是,如果我转到:http://localhost我会看到来自 Apache Tomcat 的标准 404 错误页面。

如何在 Spring Boot 中设置从/到 的重定向?/myapp

或者/等效:我可以在单个 spring-boot 应用程序中设置多个上下文路径吗?

Thi*_*ryB 5

您的问题稍后将导致错误的引用应用程序,因为您到达的是一个网站名称,并且每次都在重定向上登陆......这是一个糟糕的方式。如果我是你,我会在一开始就正确地把事情做好:在 Tomcat 中创建一个根虚拟主机,并使用根“/”上下文而不是“/myapp”为你的应用程序提供服务,除非你(或你的客户、老板)想要就这样...

使用 Apache Tomcat 的 VirtualHost 的示例配置: 来自https://tecadmin.net/create-virtualhost-in-tomcat/

<Host name="example.com"  appBase="webapps" unpackWARs="true" autoDeploy="true">
 <Alias>www.example.com</Alias>
 
 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="example_access_log" suffix=".txt"
           pattern="%h %l %u %t %r %s %b" />
 
 <Context path="" docBase="/opt/tomcat/webapps/myapp1" debug="0" reloadable="true"/>
</Host>

<Host name="mydomain.org"  appBase="webapps" unpackWARs="true" autoDeploy="true">
 <Alias>www.mydomain.org</Alias>
 
 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="mydomain_access_log" suffix=".txt"
           pattern="%h %l %u %t %r %s %b" />
 
 <Context path="" docBase="/opt/tomcat/webapps/myapp2"
    debug="0" reloadable="true"/>
</Host>
Run Code Online (Sandbox Code Playgroud)