Удаляя контекст Tomcat из URL для виртуального хоста (mod_jk, mod_rewrite)

У меня есть единственный экземпляр 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 в данный момент.

Спасибо

6
задан Richard H 14 January 2010 в 12:07
поделиться