Problem Apache 2.2 + mod_rewrite + Tomcat 5.5 (unter W2k3)

Alles, was den Apache betrifft, kann hier besprochen werden.

Problem Apache 2.2 + mod_rewrite + Tomcat 5.5 (unter W2k3)

Postby i.doc » 27. September 2007 00:33

Hallo allesamt,

leider habe ich weder hier im Forum noch bei Google eine Hilfe / HowTo für mein Problem gefunden.

Ich habe:

- Windows 2003 Standartserver
- Apache 2.2.4
- Tomcat 5.5.20
- jdk / jre 1.6.0_02

Beim Apache läuft ohne Probs das mod_ssl und ich kann einem v_host den kompletten Tomcat mounten (mod_jk).

Nun zu meinem Problem.
Auf dem Tomcat laufen derzeit drei unabhängige Applikationen, welche u.a. mit dem Strus Framework realisiert worden sind. Um nun so cryptische URLs, wie
http://vhost1.domain.de/app1/content/html/view.jsp?pressenachricht=178
in ansprechende URLs, wie
http://vhost1.domain.de/app1/pressenachricht?news=178
umzu modellieren wollte ich mich dem mod_rewrite bedienen.

Gesagt, getan: Bei einem einfachem Beispiel mit einer normalen html - Datei im Document-Verzeichnis eines v_hosts des Apaches klappte es auch einwandfrei.
Code: Select all
httd-vhosts.conf:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin mail@domain.de
    DocumentRoot "c:/HTML-Root/vhost1.domain.de"
    ServerName vhost1.domain.de
    ErrorLog c:/Apache2.2/logs/vhost1.domain.de_error.log
    CustomLog c:/Apache2.2/logs/vhost1.domain.de_access.log common
   
   RewriteEngine on
   RewriteRule ^/pressenachrichten$ /news.htm

   JkMount /* app_jk1
   JkMount /servlet/* app_jk1

</VirtualHost>


<VirtualHost *:80>
    ServerAdmin mail@domain.de
    DocumentRoot "c:/HTML-Root/vhost2.domain.de"
    ServerName vhost2.domain.de
    ErrorLog c:/Apache2.2/logs/vhost2.domain.de_error.log
    CustomLog c:/Apache2.2/logs/vhost2.domain.de_access.log common
   
   RewriteEngine on
   RewriteRule ^/pressenachrichten$ /news.htm

 </VirtualHost>



Hierbei konnte ich durch aufrufen der URL http://vhost2.domain.de/pressenachrichten die Datei [Document-VZ]\vhost2\news.htm im Internetbrowser aufrufen.
Trage ich diesen Rewrite-Tag nun aber bei den V_hosts, die den Tomcat per mod_jk mounten ein, passiert nichts. Es wird mir lediglich in der Tomcat-Console (und in log4j) folgender Fehler angezeigt:

http://vhost2.domain.de/pressenachrichten erzeugt:
Code: Select all
log4j:
2007-09-27 01:07:22,264 ERROR [TP-Processor11] org.apache.struts.action.RequestProcessor: Invalid path was requested /pressenachrichten

default_vhost_access.log:
84.61.xx.xx - - [27/Sep/2007:01:07:22 +0200] "GET /pressenachrichten HTTP/1.1" 404 1927

Scheinbar hat das Rewrite-Modul seine Arbeit noch nicht gemacht, bevor die Anfrage an den Tomcat weitergeleitet wird.

Hat jmd von euch eine Ahnung / Vermutung, warum der Apache mir die URL nicht entschlüsselt -> zum Tomcat forwarded, den Content entgegen nimmt -> URL verschlüsselt -> alles zum Client sendet?


Gruß
Chris
Gruß
Chris
i.doc
 
Posts: 4
Joined: 26. February 2007 14:22
Location: Essen

Postby Wiedmann » 27. September 2007 00:50

Hat jmd von euch eine Ahnung / Vermutung, warum der Apache mir die URL nicht entschlüsselt

Keine Ahnung von Tomcat, aber ich rate mal:
Code: Select all
JkMount /* app_jk1

Dadurch wird sich dein mod_jk wohl alle Requests schnappen (weil es ja ab "/" zuständig ist).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby i.doc » 27. September 2007 01:07

Hmm also ich bin der Meinung, dass sich der Tomcat ja auch alles ab /* schnappen soll.
Bei dem Beispiel hier:
http://vhost1.domain.de/app1/content/html/view.jsp?pressenachricht=178

Wird ja in Wahrheit diese JSP:
c:\tomcat 5.5\webapps\app1\content\html\view.jsp(+Parameter) im Tomcat ausgeführt und das Ergebnis dem Apache übergeben, der das dann an den Client / Browser weiterleitet..

Nach deiner Vermutung dürfte sich der Tomcat diese JSP aber garnicht greifen (sondern erst eine Verzeichnisstruktur tiefer), damit der Apache das rewriten kann. Was heissen würde, dass im rewrite auf eine JSP eine Verzeichnisstruktur tiefer (oder eine komplett andere Verzeichnisstruktur) zugegriffen werden soll, welche sich der Tomcat per JkMount "schnappen" darf.
Damit müsste ich ja dann alle JSP-Seiten (und action-Classen von Struts) per rewrite erreichbar machen, was ich eigentlich nicht vor hatte (da zu komplex / zuviel)
Gruß
Chris
i.doc
 
Posts: 4
Joined: 26. February 2007 14:22
Location: Essen


Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests