Tomcat 8.0 Umschreiben Ventil

Ich versuche, mit der RewriteValve in Tomcat 8.0 http://tomcat.apache.org/tomcat-8.0-doc/rewrite.html

In $CATALINA_HOME/conf/server.xml Hinzugefügt habe ich

<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />

rechts unten die Host-Tags

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

Erstellt eine rewrite.config im $CATALINA_HOME/conf Verzeichnis mit dem folgenden

RewriteRule ^/abc /myapp

wo http:/host:port/myapp ist eine funktionierende webapp.

So, jetzt, wenn ich gehen, um http://host:port/abc ich erwarte umgeleitet werden http://host:port/myapp aber ich bekomme eine 404 the requested resource is not available statt.

Sieht es nicht aus, es ist sogar das Lesen meiner schreiben.config-Datei. Der access log im Verzeichnis logs nur Berichte die "GET /abc HTTP/1.1" 404 1000 mit keine weiteren details.

Was bin ich? Dank

  • Haben Sie aktiviert die DEBUG-Protokollierung für RewriteValve? Alles relevante in den logs? Auf den ersten Blick, was Sie sieht richtig. Welche version von Apache Tomcat verwenden Sie?
  • Wie kann ich aktivieren Sie die DEBUG-Protokollierung für RewriteValve? Ich bin Tomcat verwenden 8.0.15
  • Chris - Irgendwelche Ideen, was ich sonst noch versuchen? Ich bin etwa mit meinem Latein am Ende, nicht sicher, wie Sie Sie Debuggen/Fehlersuche diese weiter. Vielen Dank für jede Hilfe.
  • Lesen Sie die Tomcat-users' guide Abschnitt Protokollierung finden Sie unter konfigurieren DEBUG logging für einzelne Klasse. Sie im Grunde nur eine Zeile hinzufügen, um logging.properites mit dem die Konfiguration der Java-logging-Mechanismus (java.util.log).
  • Ich habe das ja auch schon. Ich habe eine Zeile nach $CATALINA_HOME/conf/logging.Eigenschaften org.apache.catalina.valves.rewrite.RewriteValve.level = FINE aber das hat nicht zu funktionieren scheinen, keine Einträge in einer der log-Dateien in /logs.
  • Chris - Irgendwelche Ideen? Ich ging zurück zu den URLRewriteFilter in tuckey.org/urlrewrite, aber da dies nun integriert Tomcat, ich würde wirklich gerne, es zu benutzen, anstatt noch eine Dritte Komponente.
  • Oh, leider, das RewriteValve nicht mit seinem eigenen (Klassen-spezifisch) logger. Stattdessen meldet es sich zu seinem container Ventil. Also, wenn Sie Ihre <Valve> so konfiguriert, dass ein Kind von der <Host>, dann müssen Sie ändern Sie den "log level" auf dem host (wie dieser: org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = DEBUG).
  • OK jetzt sind wir immer irgendwo. DEBUG hat nicht funktioniert. Ich fügte org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE conf/logging.Eigenschaften und sah 19-Nov-2014 13:30:21.322 FINE [Catalina-startStop-1] org.apache.catalina.valves.rewrite.RewriteValve.startInternal No configuration resource found: Catalina/localhost/rewrite.config in ... im localhost.2014-11-19.log. Also zog ich meine umschreiben.config Datei von /conf conf/Catalina/localhost " und jetzt ist es hob meine rewrite-Regeln. Vielleicht ist die Dokumentation kann dies verdeutlichen. Danke.
  • Ja, ich habe bemerkt, eine Menge Raum für Verbesserungen mit der Dokumentation. Die RewriteValve ist ein neues feature, ohne viele Kilometer unter den Gürtel, so ist dies ein gutes feedback.

InformationsquelleAutor V.A. | 2014-11-14
Schreibe einen Kommentar