PDA

View Full Version : apache tomcat RewriteRule


texerasmo
13-01-2005, 12:24
Ciao a tutti
ho configurato Apache con Tomcat attraverso il modulo JkMount tutto ok

Ora ho bisogno di fare questa cosa..

se chiamo questa url www.demo.it/pippo/(e tutto quello che viene dopo) me lo deve rindirizzare su /usr/local/tomcat/webapps/mino/index.jsp

ora il rewrite funziona ma la pagina jsp non viene interpretata.

Invece se il rewrite viene rindirizzato in questo modo http://www.mino.it/index.jsp la pagina viene interpretata ma mi perdo i valori della url che nel primo caso non succede.

kingv
13-01-2005, 13:27
usare mod_rewrite è scorretto, non stai mappando url statiche ma una webapplication e il mappaggio lo devi fare dentro tomcat e non dentro apache.


guardati la documentazione della direttiva <Context> di tomcat, e' quello che ti serve.
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/context.html
nella definizione ti bastano i due attributi obbligatori (docBase e path)


Ciao

texerasmo
13-01-2005, 15:09
Scusami ma non ho capito
io dentro il server.xml ho gia definito il mio host che dentro ha il moi contesto forse non mi sono fatto capire.


io vorrei che se una url è fatta in questo modo
www.pippo.it/topolino/....

la chimata vine inoltrata a www.pippo.it/index.jsp

ma url mi deve rimanere così www.pippo.it/topolino/....

in modo tale da prendere i valori della url e smaltire le chiamate

kingv
13-01-2005, 15:38
non mi sono spiegato.


al web server arriva una richiesta del tipo:

http://nomeserver/virtualdir/

il webserver deve essere configurato per reindirizzare le richieste per il path /virtualdir/ verso tomcat e questo penso che tu l'abbia già fatto.

ora tu vuoi che le richieste che arrivano a tomcat e sono dirette a /virtualdir (eg. http://mioserver/virtualdir/miapagina.jsp) vengano mappate su una jsp che si trova in una certa directory del filesystem (ad esempio /usr/local/tomcat/miadir/miapagina.jsp)


puoi fare in due modi:

- metti la tua applicazione in tomcat/webapps/virtualdir e sfrutti i mappaggi di default per le webapp
- ti crei un mapping custom modificando la confugirazione di tomcat, puoi farlo sia in fase di deply dell'applicazione sia modificando i file di configurazione come ti ho detto nel post precedente.

se non sono stato ancora chiaro (probabile) ci riprovo :sob:

texerasmo
13-01-2005, 16:03
allora da quando ho capito devo modificare il server.xml di tomcat
e togliere il rewriterule da apache?

texerasmo
13-01-2005, 17:48
Ora viene generato tutto ma...

StringBuffer url=request.getRequestURL();

out.print("url--->"+url+"<br>");
// mi restiuisce la url dove è stato rindirizzato

// se non ci sono stringhe dopo lo / includo la pagina di default

String url_percorso=request.getServletPath(); //

out.print("url_percorso--->"+url_percorso+"<br>");
// mi restiuisce dove è stato rindirizzato

come devo cattutare quello che c'è scritto nella barra degli indirzzi

kingv
13-01-2005, 17:55
modifica il server.xml di tomcat e nella riga PRIMA del tag:

</Host>

metti questo:

<Context docBase="/tuo/path/alla/webapp/" path="/pippo"></Context>

kingv
13-01-2005, 17:57
Originariamente inviato da texerasmo

come devo cattutare quello che c'è scritto nella barra degli indirzzi



stavo rispondendo alla domanda prima, appena ho tempo faccio una prova per questo.

kingv
13-01-2005, 18:02
fai la modifica che ti ho indicato sopra, ho provato e:

request.getRequestURL();


restituisce il risultato che ti aspetti.

texerasmo
13-01-2005, 18:31
intanto ho trovato anche questa strada

nel mio rewriite ho agginto $1?chiave=

cosi nella mia che jsp mi vado a prendere il parametro tnks