Tomcat-Basis-URL-Umleitung

79

Wie erhalte ich mit tomcat eine Anfrage für http://www.mydomain.com , um zu http://www.mydomain.com/somethingelse/index.jsp umzuleiten ? Ich habe es noch nicht einmal geschafft, eine index.html von http://mydomain.com anzuzeigen .

Nathaniel Flath
quelle
Gibt es einen Grund, warum .htaccess oder Isapi nicht funktionieren würden?
Nona Urbiz
5
@NonaUrbiz: Ist .htaccess Apache http-Server nicht spezifisch und funktioniert nicht mit Tomcat?
Tim Büthe
Für alle anderen scheint Tomcat es nicht zu empfehlen, siehe ihre Dokumente - wiki.jenkins-ci.org/display/JENKINS/…
KCD

Antworten:

24

Nennen Sie Ihre Webanwendung WAR "ROOT.war" oder den Ordner "ROOT".

Flybywire
quelle
Dieser Ansatz verursacht viele Probleme, wenn Sie lokal arbeiten und Ihre Anwendung dann auf mehreren Servern bereitstellen. Insbesondere, wenn mehrere Projekte auf verschiedenen Servern bereitgestellt werden sollen und jedes auf seinen eigenen Servern ROOT sein kann.
Zookastos
111

Sie können dies tun: Wenn Ihre Tomcat-Installation Standard ist und Sie keine Änderungen vorgenommen haben, ist der Standardkrieg ROOT.war. Wenn Sie also aufrufen http://yourserver.example.com/, wird das index.htmloder index.jspIhrer Standard-WAR-Datei aufgerufen . Nehmen Sie die folgenden Änderungen in Ihrem webapp/ROOTOrdner vor, um Anforderungen an weiterzuleiten http://yourserver.example.com/somewhere/else:

  1. Öffnen webapp/ROOT/WEB-INF/web.xml, entfernen Sie alle Servlet-Zuordnungen mit Pfad /index.htmloder /index.jspund speichern Sie sie.

  2. Entfernen Sie webapp/ROOT/index.html, falls vorhanden.

  3. Erstellen Sie die Datei webapp/ROOT/index.jspmit dieser Inhaltszeile:

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

    oder wenn Sie zu einem anderen Server leiten möchten,

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

Das ist es.

Virales Patel
quelle
7
Nur Schritt 2 benötigt. Getestet auf Tomcat 7.
Staubmaschine
11
Der Befehl sendRedirect war alles, was für mich benötigt wurde. index.jsp enthält nur: <% response.sendRedirect ("/ jasperserver"); %>
Andy Burton
3
Vergessen Sie nicht, <% und%> vor jedem JSP-Scriptlet hinzuzufügen
Jasim Muhammed
Sollte jetzt behoben sein, habe ich auch einige andere Dinge behoben.
Reinierpost
Java funktionierte nicht für mich, daher habe ich index.html mit HTML-Umleitung verwendet. stackoverflow.com/questions/5411538/redirect-from-an-html-page
Jaapyse
18

Schauen Sie sich UrlRewriteFilter an , eine Java-basierte Implementierung von Apaches mod_rewrite.

Sie müssen es in einen ROOTOrdner unter dem Ordner Ihres Tomcat extrahieren webapps. Sie können dann Weiterleitungen zu einem anderen Kontext in der WEB-INF/urlrewrite.xmlKonfigurationsdatei konfigurieren.

ChssPly76
quelle
UrlRewriteFilter ist schnell und hat bei mir gut funktioniert. Das Handbuch bietet einige großartige Optionen und dieser Blog-Beitrag enthält auch einige gute Informationen.
CWD
11

Getestetes und funktionierendes Verfahren:

Gehe zum Dateipfad ..\apache-tomcat-7.0.x\webapps\ROOT\index.jsp

Entfernen Sie den gesamten Inhalt oder deklarieren Sie die folgenden Codezeilen oben in der Datei index.jsp

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

Bitte beachten Sie, dass Sie in der JSP-Datei die obige Zeile mit <% beginnen und mit%> enden müssen

obaid
quelle
8

Was ich getan habe:

Ich habe die folgende Zeile in ROOT / index.jsp hinzugefügt

 <meta http-equiv="refresh" content="0;url=/somethingelse/index.jsp"/>
Kevin
quelle
2
Dies könnte Ihre Analysedaten wirklich vermasseln, da die Überweisung verloren geht.
Sbichenko
Ein kleiner Vorteil dieser Methode ist, dass sie in index.html anstelle von index.jsp
Edd
@AdrianRM "es ist nicht der richtige Weg", also was ist der richtige Weg?
Ed Griebel
Viral Patel's und ChssPly76's sind beide gültige Antworten: stackoverflow.com/a/1363781/208576 stackoverflow.com/a/1363685/208576
AdrianRM
Dies funktionierte für mich, bis ich HTTPS aktiviert habe. Wechselt zu <% response.sendRedirect("/some/where"); %>und es funktioniert jetzt mit HTTPS.
Michał Maciej Gałuszka