2009-08-17 13 views
6

ho un Apache e Tomcat in esecuzione e io uso mod_jk per legarli. Ho un operaio Tomcat denominata "TC1" e la seguente configurazione sul mio VirtualHost:conflitti mod_jk il quale mod_rewrite

JkMount /* tc1 
JkUnMount /*.png tc1 
JkUnMount /*.gif tc1 
JkUnMount /*.css tc1 
JkUnMount /*.js tc1 

questo modo Tomcat serve tutte le richieste a parte quelli per i file statici.

Ora voglio usare mod_rewrite e fare qualcosa di molto semplice, come ad esempio:

RewriteEngine On 
RewriteRule ^/foo$ /bar [L] 

di riscrivere la pagina visualizzata dinamica a "/ foo" a "/ bar", ma non funziona perché tutti gli URL elaborato da mod_rewrite non finire in mod_jk.

Ho letto l'Apache Tomcat Connector documentation ed ho provato tutto il JkOptions, ma nulla è cambiato.

Qualcuno sa come risolvere questo?

L'ordine di caricamento di mod_jk e mod_rewrite ha un ruolo nell'elaborazione dell'URL?

grazie

risposta

12

È strano, perché di default un RewriteRule invia un redirect lato client, in modo che il cliente dovrebbe fare una seconda richiesta a/bar che dovrebbe essere catturato dal vostro JkMount. Il tuo log di accesso mostra la richiesta di /foo e anche la richiesta di /bar?

Prova questa regola invece:

RewriteRule ^/foo$ /bar [PT,L] 

La "PT" significa "pass-through", ed è un bodge riscrittura che permette di mutare l'URL in situ e permette di altri moduli ottenere uno sguardo a, senza inviare un reindirizzamento.

+0

Grazie per la risposta. Ci proverò e pubblicherò i risultati. Si noti che non desidero un reindirizzamento lato client, ma una riscrittura di URL. – cherouvim

+0

Grazie mille! PT (passthrough) è quello che volevo! – cherouvim