У меня есть единственный экземпляр Tomcat, содержащий много веб-приложений, каждый доступный через, он - Контекст/. Tomcat находится позади httpd (на самом деле Debian Apache2), настроен с виртуальными хостами для обслуживания каждого приложения/Контекста. Возможность соединения Tomcat с mod_jk.
Это хорошо работает, когда я не забочусь об удалении контекста от URL: когда корень виртуального домена требуют, требуемый перенаправляется на domain.com/Context.
Однако для одного приложения я действительно хочу удалить контекст. Я полагаю, что это может быть сделано при помощи mod_rewrite и передачи переписанного URL к mod_jk для передачи к корректному контексту Tomcat. Так мой Debian Apache2 доступный сайтам файл похож на это:
NameVirtualHost *
<VirtualHost *>
ServerName domain.be
DocumentRoot /home/webapp/app/static/domain/
RewriteEngine on
RewriteRule ^/(.*)$ /Context/$1 [L,PT]
RewriteLog "/var/log/apache2/domain-rewrite.log"
RewriteLogLevel 4
JkLogFile /var/log/apache2/domain-mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkMount /Context w1
JKMount /Context* w1
JkOptions +ForwardURICompat
ErrorLog /var/log/apache2/domain_error.log
CustomLog /var/log/apache2/domain_access.log combined
LogLevel warn
</VirtualHost>
Согласно документам, флаг [PT] и +ForwardURICompat опции должны привести к переписанному URL, передаваемому jk_mod. Однако этого, кажется, не происходит.
URL переписывается, но кажется, как будто mod_jk игнорирует его: запрос на domain.be/Context, например, переписывается как/Context/Context - но все еще вручен mod_jk как / Контекст.
Какие-либо идеи? Кстати, я не могу использовать mod_proxy в данный момент.
Спасибо