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 .


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".


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.


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.


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


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"/>

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.