如何将http://example.comredirect到tomcat中的http://www.example.com

有没有办法使用Tomcat的server.xml文件中的虚拟服务器标签来redirect直接访问域名的任何人(例如: http : //example.com )以将其redirect到http://www.example.com www子域?

任何帮助将不胜感激。

在Tomcat(servlets)中:

servletResponse.setStatus(res.SC_MOVED_TEMPORARILY); servletResponse.setHeader("Location", "http://www.domain.com"); 

在JavaScript中:

 <script type="text/javascript"> window.location = "http://www.domain.com" </script> 

在纯HTML中:

 <meta HTTP-EQUIV="REFRESH" content="0; url=http://www.domain.com"> 

如果您需要将Tomcat中的服务器端redirect从一个URL转换为另一个,则可以使用以下几种方法:

  1. Tomcat 5.5附带的Load Balancer Web应用程序可能会执行一些简单的redirect; 它看起来像后来的Tomcat版本已经放弃了它。
  2. 如果您对URLredirect的需求可能仅限于Web应用程序级别,则来自www.tuckey.org的UrlRewriteFilter是强大的工具,最有可能帮助您。
  3. 如果您的需求更适合服务器/容器级redirect,那么正确的工具可能是RewriteValve ,它是JBoss Web服务器的一个组件,与Apache httpd mod_rewrite相媲美。
  4. 如果您需要服务器级的redirect,但更喜欢轻量级的东西,您可能希望看看我的Tomcatredirect阀 。

通常情况下,这可以使用Apache前端完成,但是您可以在上下文configuration中使用命名主机 ,以指定不同的上下文,其中非www版本只是redirect到www版本。 我认为Apache更简单。

你不需要tomcat来做到这一点,你可以直接在DNS条目中做到这一点。