Redirección de URL base de Tomcat


79

Usando tomcat, ¿cómo obtengo una solicitud de http://www.mydomain.com para redirigir a http://www.mydomain.com/somethingelse/index.jsp ? Ni siquiera he logrado obtener un index.html para mostrar desde http://mydomain.com .


¿Hay alguna razón por la que .htaccess o isapi no funcionen?
Nona Urbiz

5
@NonaUrbiz: ¿no es el servidor http de .htaccess Apache específico y no funciona con Tomcat?
Tim Büthe

Para cualquier otra persona, Tomcat no parece recomendarlo, consulte sus documentos - wiki.jenkins-ci.org/display/JENKINS/…
KCD

Respuestas:


24

Nombra tu aplicación web WAR "ROOT.war" o la carpeta que contiene "ROOT"


Este enfoque causa muchos problemas cuando se trabaja en local y luego se implementa su aplicación en varios servidores. Especialmente si tiene varios proyectos que se van a implementar en diferentes servidores, y cada uno puede ser ROOT en sus propios servidores.
zookastos

111

Puede hacer esto: Si su instalación de Tomcat es predeterminada y no ha realizado ningún cambio, entonces la guerra predeterminada será ROOT.war. Por lo tanto, cada vez que llame http://yourserver.example.com/, llamará al index.htmlo index.jspde su archivo WAR predeterminado. Realice los siguientes cambios en su webapp/ROOTcarpeta para redirigir las solicitudes a http://yourserver.example.com/somewhere/else:

  1. Abra webapp/ROOT/WEB-INF/web.xml, elimine cualquier asignación de servlet con la ruta /index.htmlo /index.jspy guarde.

  2. Eliminar webapp/ROOT/index.html, si existe.

  3. Crea el archivo webapp/ROOT/index.jspcon esta línea de contenido:

    <% response.sendRedirect("/some/where"); %>
    

    o si desea dirigirse a un servidor diferente,

    <% response.sendRedirect("http://otherserver.example.com/some/where"); %>
    

Eso es.


7
Solo se necesita el paso 2. Probado en Tomcat 7.
dustmachine

11
El comando sendRedirect era todo lo que necesitaba. index.jsp solo contiene: <% response.sendRedirect ("/ jasperserver"); %>
Andy Burton

3
No olvide agregar <% y%> antes de cualquier scriptlet jsp
Jasim Muhammed

Debería arreglarse ahora, también arreglé algunas otras cosas.
reinierpost

Java no me funcionaba, así que usé index.html con redirección html. stackoverflow.com/questions/5411538/redirect-from-an-html-page
Jaapyse

18

Eche un vistazo a UrlRewriteFilter, que es esencialmente una implementación basada en Java del mod_rewrite de Apache.

Deberá extraerlo en la ROOTcarpeta debajo de la carpeta de su Tomcat webapps; luego puede configurar redirecciones a cualquier otro contexto dentro de su WEB-INF/urlrewrite.xmlarchivo de configuración.


UrlRewriteFilter es rápido y funcionó bien para mí. el manual tiene excelentes opciones y esta publicación de blog también tiene buena información.
cwd

11

Procedimiento probado y de trabajo:

Ir a la ruta del archivo ..\apache-tomcat-7.0.x\webapps\ROOT\index.jsp

elimine todo el contenido o declare las siguientes líneas de código en la parte superior del index.jsp

<% response.sendRedirect("http://yourRedirectionURL"); %>

Tenga en cuenta que en el archivo jsp debe comenzar la línea anterior con <% y terminar con%>


8

Lo que hice:

Agregué la siguiente línea dentro de ROOT / index.jsp

 <meta http-equiv="refresh" content="0;url=/somethingelse/index.jsp"/>

2
Esto realmente podría arruinar sus datos analíticos, ya que se perderá la referencia.
sbichenko

Un pequeño beneficio de este método es que puede ir en index.html en lugar de index.jsp
Edd

@AdrianRM "no es la forma de hacerlo", entonces, ¿cuál es la forma correcta?
Ed Griebel

Viral Patel y ChssPly76 son respuestas válidas: stackoverflow.com/a/1363781/208576 stackoverflow.com/a/1363685/208576
AdrianRM

Esto funcionó para mí hasta que habilité HTTPS. Se cambió <% response.sendRedirect("/some/where"); %>y ahora funciona con HTTPS.
Michał Maciej Gałuszka

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.