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.