2009-08-17 16 views
6

Tengo un Apache y Tomcat en ejecución y uso mod_jk para enlazarlos. Tengo un trabajador Tomcat denominado "TC1" y la siguiente configuración en mi VirtualHost:conflictos mod_jk con mod_rewrite

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

De esa manera Tomcat sirve a todas las solicitudes de diferencia para los archivos estáticos.

Ahora quiero usar mod_rewrite y hacer algo muy simple como:

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

reescribir la visita de página dinámica en "/ foo" a "/ bar", pero no funciona porque todas las URL procesado por mod_rewrite no termina en mod_jk.

He leído el Apache Tomcat Connector documentation y he intentado todo el JkOptions pero nada ha cambiado.

¿Alguien sabe cómo solucionar esto?

¿El pedido de carga mod_jk y mod_rewrite ordena el juego y las declaraciones juegan un papel en el procesamiento de URL?

gracias

Respuesta

12

Eso es raro, porque por defecto una RewriteRule envía una redirección del lado del cliente, por lo que el cliente debe hacer una segunda petición a/barra que debe ser capturado por su JkMount. ¿Su registro de acceso de acceso muestra la solicitud de /foo y la solicitud de /bar también?

Pruebe esta regla en su lugar:

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

El "PT" significa "transferencia", y es una bodge reescritura que le permite mutar la URL in situ y le permite a otros módulos de echar un vistazo en, sin enviar una redirección

+0

Gracias por la respuesta. Lo intentaré y publicaré los resultados. Tenga en cuenta que no quiero una redirección del lado del cliente, sino una reescritura de URL. – cherouvim

+0

¡Muchas gracias! ¡PT (passthrough) es lo que quería! – cherouvim