有没有办法使用 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 进行服务器端重定向,则您有以下几种选择:
- Tomcat 5.5 附带的负载均衡器 Web 应用程序可能会执行一些简单的重定向;看起来后来的 Tomcat 版本已经放弃了它。
- 如果您对 URL 重定向的需求可能仅限于 Web 应用程序级别,那么 www.tuckey.org 的 UrlRewriteFilter 是一个功能强大的工具,很可能能够帮助您。
- 如果你的需求更适合服务器/容器级重定向,那么正确的工具可能是重写阀,JBoss Web Server 的一个组件,功能与 Apache httpd mod_rewrite 相当。
- 如果你需要服务器级重定向,但更喜欢轻量级的重定向,你可能希望看看我的Tomcat 重定向阀。
答案3
通常,这将使用 Apache 前端完成,但您可以使用命名主机在您的上下文配置中指定不同的上下文,其中非 www 版本仅重定向到 www 版本。我认为 Apache 要简单得多。
答案4
您不需要 tomcat 来执行此操作,您可以直接在 DNS 条目中执行此操作。