Hi, hab da mal ein relativ exotisches Problem:
Ich bin im Besitz eines Servers, auf dem mehrere Leute ihre Seiten hosten. Es läuft ein Apache2 und seit einer Weile auch ein Tomcat5.5, der wiederum mehrere Projekte hostet. Mod_jk ist ebenfalls installiert und das ganze auf eine subdomain gemappt.
So sieht das jetzt aus zum Beispiel:
tomcat.server.tld/
tomcat.server.tld/projekt1
tomcat.server.tld/projekt2
Nun möchte ich eines dieser Projekte auf eine Domain mappen, ohne dabei diese Applikation als "root-app" im Tomcat laufen zu lassen. Also projekt2 soll nun zum Beispiel sowohl unter tomcat.server.tld/projekt2 als auch unter www.projekt2.tld erreichbar sein.
Meine jetzige Lösung hat zwei Nachteile, die ich gerne vermeiden möchte, was aber mit meinem Ansatz eher nicht möglich ist, glaub ich.
Ich habe das Projekt in der vhost Datei des Apache per "JKMount /projekt2/*" auf die Domain gemappt. Das heißt, die Anwendung ist unter projekt2.tld/projekt2 erreichbar. Damit ich mir als Benutzer nun diesen Adresszusatz spare, habe ich per .htaccess RewriteRule festgelegt, dass alle Anfragen an projekt2.tld/ an den unterordner projekt2 geleitet werden, auf den die Anwendung gemountet ist.
Also www.projekt2.tld/index.html wird intern als www.projekt2.tld/projekt2/index.html übersetzt.
Der Vorteil ist, dass der Benutzer das nicht sieht und merkt.
Die beiden Nachteile sind, dass die komplette Anwendung auch durch diesem Unterordner erreichbar ist und dass im Kontext der Anwendung der Projektname steht und bei jedem <c:url> wird dieser Name noch vor den Link geschrieben.
Das sieht dann einfach blöde aus, wenn da www.projekt2.tld/projekt2/suche usw. steht.
Wenn ich keine <c:url> tags benutze, kann ich die Anwendung nicht mehr unabhängig von der Domain besuchen, dann funktioniert sie auf der einen durch das url-rewriting und auf der "originalen" Seite nicht.
Gibt es eine andere Möglichkeit mein Projekt auf meine Domain zu mappen? Ich will auf keinen Fall, dass die anderen Anwendungen über meine Domain erreichbar sind (www.projekt2.tld/projekt1 darf nicht drin sein...).
Ich bin im Besitz eines Servers, auf dem mehrere Leute ihre Seiten hosten. Es läuft ein Apache2 und seit einer Weile auch ein Tomcat5.5, der wiederum mehrere Projekte hostet. Mod_jk ist ebenfalls installiert und das ganze auf eine subdomain gemappt.
So sieht das jetzt aus zum Beispiel:
tomcat.server.tld/
tomcat.server.tld/projekt1
tomcat.server.tld/projekt2
Nun möchte ich eines dieser Projekte auf eine Domain mappen, ohne dabei diese Applikation als "root-app" im Tomcat laufen zu lassen. Also projekt2 soll nun zum Beispiel sowohl unter tomcat.server.tld/projekt2 als auch unter www.projekt2.tld erreichbar sein.
Meine jetzige Lösung hat zwei Nachteile, die ich gerne vermeiden möchte, was aber mit meinem Ansatz eher nicht möglich ist, glaub ich.
Ich habe das Projekt in der vhost Datei des Apache per "JKMount /projekt2/*" auf die Domain gemappt. Das heißt, die Anwendung ist unter projekt2.tld/projekt2 erreichbar. Damit ich mir als Benutzer nun diesen Adresszusatz spare, habe ich per .htaccess RewriteRule festgelegt, dass alle Anfragen an projekt2.tld/ an den unterordner projekt2 geleitet werden, auf den die Anwendung gemountet ist.
Also www.projekt2.tld/index.html wird intern als www.projekt2.tld/projekt2/index.html übersetzt.
Der Vorteil ist, dass der Benutzer das nicht sieht und merkt.
Die beiden Nachteile sind, dass die komplette Anwendung auch durch diesem Unterordner erreichbar ist und dass im Kontext der Anwendung der Projektname steht und bei jedem <c:url> wird dieser Name noch vor den Link geschrieben.
Das sieht dann einfach blöde aus, wenn da www.projekt2.tld/projekt2/suche usw. steht.
Wenn ich keine <c:url> tags benutze, kann ich die Anwendung nicht mehr unabhängig von der Domain besuchen, dann funktioniert sie auf der einen durch das url-rewriting und auf der "originalen" Seite nicht.
Gibt es eine andere Möglichkeit mein Projekt auf meine Domain zu mappen? Ich will auf keinen Fall, dass die anderen Anwendungen über meine Domain erreichbar sind (www.projekt2.tld/projekt1 darf nicht drin sein...).