Apache tomcat : URL 基于重定向部分工作
Apache tomcat : URL based redirection partially works
我正在努力在单个 tomcat 实例中部署多个网络应用程序,其中要调用的网络应用程序取决于用户调用的 URL
。因此,如果用户调用 www.domain-one.com
,那么 firstapp.war
就是用户正在寻找的 Web 应用程序,它将显示给用户。
我在这方面运气不错。现在,如果我调用 www.domain-one.com
,没有任何反应,但如果我调用 www.domain-one.com/firstapp
,则会调用正确的 webapp。
我只想删除上下文路径中的第一个应用程序。我该如何实现。
这是我的配置:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"/>
<Host name="www.domain-one.com" autodeploy="true" unpackWARs="true" appBase="/war/firstapp"/>
<Host name="www.domain-two.com" autodeploy="true" unpackWARs="true" appBase="/war/secondapp"/>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
我的 webapps 文件夹中目前只有两个 webapps,都不是 ROOT.war。我希望这些信息足够了。请让我知道为什么会出现这个问题。非常感谢。 :-)
根据您的 tomcat 主要版本,请在此处查看:
Tomcat 6 - https://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html
Tomcat 7 - https://tomcat.apache.org/tomcat-7.0-doc/virtual-hosting-howto.html
Tomcat 8 - https://tomcat.apache.org/tomcat-8.0-doc/virtual-hosting-howto.html
它真的很简单,让我们也摆脱了上下文路径。
我使用了不同的配置解决了这个问题:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"/>
<Host name="firstdomain.com" autoDeploy="true" unpackWARs="true" appBase="firstdomain_webapps">
<Alias>www.firstdomain.com</Alias>
<Context path=""/>
</Host>
<Host name="seconddomain.com" autoDeploy="true" unpackWARs="true" appBase="seconddomain_webapps">
<Alias>www.seconddomain.com</Alias>
<Context path=""/>
</Host>
这个配置对我有用,解决了我的问题。
我正在努力在单个 tomcat 实例中部署多个网络应用程序,其中要调用的网络应用程序取决于用户调用的 URL
。因此,如果用户调用 www.domain-one.com
,那么 firstapp.war
就是用户正在寻找的 Web 应用程序,它将显示给用户。
我在这方面运气不错。现在,如果我调用 www.domain-one.com
,没有任何反应,但如果我调用 www.domain-one.com/firstapp
,则会调用正确的 webapp。
我只想删除上下文路径中的第一个应用程序。我该如何实现。
这是我的配置:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"/>
<Host name="www.domain-one.com" autodeploy="true" unpackWARs="true" appBase="/war/firstapp"/>
<Host name="www.domain-two.com" autodeploy="true" unpackWARs="true" appBase="/war/secondapp"/>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
我的 webapps 文件夹中目前只有两个 webapps,都不是 ROOT.war。我希望这些信息足够了。请让我知道为什么会出现这个问题。非常感谢。 :-)
根据您的 tomcat 主要版本,请在此处查看:
Tomcat 6 - https://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html
Tomcat 7 - https://tomcat.apache.org/tomcat-7.0-doc/virtual-hosting-howto.html
Tomcat 8 - https://tomcat.apache.org/tomcat-8.0-doc/virtual-hosting-howto.html
它真的很简单,让我们也摆脱了上下文路径。
我使用了不同的配置解决了这个问题:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"/>
<Host name="firstdomain.com" autoDeploy="true" unpackWARs="true" appBase="firstdomain_webapps">
<Alias>www.firstdomain.com</Alias>
<Context path=""/>
</Host>
<Host name="seconddomain.com" autoDeploy="true" unpackWARs="true" appBase="seconddomain_webapps">
<Alias>www.seconddomain.com</Alias>
<Context path=""/>
</Host>
这个配置对我有用,解决了我的问题。