メインのTomcat構成にアクセスできますか?Tomcatは仮想ホスティングを実行できるため、リダイレクトを実行するための単純なWebアプリケーションを使用して別の仮想ホストをセットアップできます。
conf / server.xml
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" ...>
<!-- current configuration, this Host will serve www.example.com -->
</Host>
<Host name="example.com" appBase="nonwww-webapps" />
</Engine>
nonwww-webapps / ROOT / WEB-INF / web.xml
<?xml version="1.0" ?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>redirectToWww</servlet-name>
<jsp-file>/WEB-INF/redirect.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>redirectToWww</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
nonwww-webapps / ROOT / WEB-INF / redirect.jsp
<% response.sendRedirect("http://www.example.com" + request.getRequestURI() +
(request.getQueryString() == null
? ""
: ("?" + request.getQueryString())
)); %>
または、302リダイレクトではなく301リダイレクトが必要な場合
<% response.setStatus(301);
response.setHeader("Location", "http://www.example.com" + request.getRequestURI() +
(request.getQueryString() == null
? ""
: ("?" + request.getQueryString())
));
response.setHeader("Connection", "close"); %>