Перепишите правило на apache2 с помощью tomcat6

Я пытаюсь переписать запрос из веб-приложения GWT, если быть более точным: gwtupload. Веб-приложение привязано к apache2 через mod_jk.

Мне нужно переписать следующий запрос:

    http://www.example.com/servlet.gupld?new_session=true&random=0.3840860207955523

To

    http://www.example.com/webapp/servlet.gupld?new_session=true&random=0.3840860207955523

Что-нибудь после servlet.gupld? должен быть переменным.

Само веб-приложение работает нормально и выглядит следующим образом:

    <IfModule mod_jk.c>
    JkMount /webapp/* tomcat3
    JkLogLevel error
    </IfModule>

Пока мое (не работающее) правило перезаписи выглядит так:

    <Directory /var/www/www.example.com/www>
            Options -Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all

    RewriteEngine On
    RewriteBase   /
    RewriteRule   ^/servlet\.gupld /webapp/servlet\.gupld [PT,L]
    </Directory>

На данный момент я всегда получаю 404 на запрос к сервлету.

Кто-нибудь может помочь?


person Randy    schedule 14.09.2011    source источник


Ответы (1)


Вам не нужно экранировать "." в перезаписи. Вам нужно только /webapp/servlet.gupld

Вам также понадобится флаг QSA в правиле перезаписи, чтобы строки запроса передавались.

person Jon Lin    schedule 15.09.2011
comment
Я только что изменил его на RewriteRule servlet.gupld /falschparker/falschparker/servlet.gupld [PT,QSA] Но почему-то строка запроса не передается сервлету. Любые идеи? - person Randy; 15.09.2011
comment
Это правило зациклится. Попробуйте RewriteRule ^servlet.gupld(.*)$ /falschparker/falschparker/servlet.gupld$1 [PT,QSA,L], если это не сработает, попробуйте добавить / сразу после ^ - person Jon Lin; 15.09.2011