2009-08-17 3 views
6

У меня работает Apache и Tomcat, и я использую mod_jk, чтобы связать их. У меня есть рабочий Tomcat под названием «tc1» и следующую установку на моем VirtualHost:mod_jk конфликты с mod_rewrite

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

Таким образом Tomcat обслуживает все запросы друг от друга те, для статических файлов.

Теперь я хочу использовать mod_rewrite и сделать что-то очень простое, таких как:

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

переписать динамический просмотр страницы в «/ Foo» до «/ бар», но он не работает, потому что все URLs обработанные mod_rewrite, не заканчиваются на mod_jk.

Я читал Apache Tomcat Connector documentation и пробовал все JkOptions, но ничего не изменилось.

Кто-нибудь знает, как это решить?

Выполняет ли заказы на заказ и объявления объявлений mod_jk и играть роль в обработке URL?

благодаря

ответ

12

Это странно, потому что по умолчанию используется RewriteRule посылает на стороне клиента перенаправления, таким образом, клиент должен сделать второй запрос/бар, который должен быть пойманы вашим JkMount. Показывает ли ваш журнал доступа запрос на номер /foo и запрос /bar?

Попробуйте это правило вместо:

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

«PT» означает «сквозная», и переписывание латать, который позволяет мутировать URL на месте и позволяет другим модулям взглянуть на, без отправки перенаправления.

+0

Спасибо за ваш ответ. Я попробую и опубликую результаты. Обратите внимание, что я не хочу перенаправлять клиентскую сторону, но переписывать URL. – cherouvim

+0

Спасибо большое! PT (passthrough) - это то, что я хотел! – cherouvim

Смежные вопросы