如何在 tomcat 中将 http://example.com 重定向到 http://www.example.com

如何在 tomcat 中将 http://example.com 重定向到 http://www.example.com

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

任何帮助将不胜感激。

答案1

在 Tomcat (servlet) 中:

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">

答案2

如果您需要在 Tomcat 中从一个 URL 到另一个 URL 进行服务器端重定向,则您有以下几种选择:

  1. Tomcat 5.5 附带的负载均衡器 Web 应用程序可能会执行一些简单的重定向;看起来后来的 Tomcat 版本已经放弃了它。
  2. 如果您对 URL 重定向的需求可能仅限于 Web 应用程序级别,那么 www.tuckey.org 的 UrlRewriteFilter 是一个功能强大的工具,很可能能够帮助您。
  3. 如果你的需求更适合服务器/容器级重定向,那么正确的工具可能是重写阀,JBoss Web Server 的一个组件,功能与 Apache httpd mod_rewrite 相当。
  4. 如果你需要服务器级重定向,但更喜欢轻量级的重定向,你可能希望看看我的Tomcat 重定向阀

答案3

通常,这将使用 Apache 前端完成,但您可以使用命名主机在您的上下文配置中指定不同的上下文,其中非 www 版本仅重定向到 www 版本。我认为 Apache 要简单得多。

答案4

您不需要 tomcat 来执行此操作,您可以直接在 DNS 条目中执行此操作。

相关内容