Apache переписать с неявным перенаправлением - PullRequest
1 голос
/ 09 августа 2009

Я пытался сделать это в течение некоторого времени безуспешно. Я заранее скажу, что это, вероятно, вопрос новичка, поэтому извиняюсь, но мне нужна некоторая помощь с этим.

Я пытаюсь перенаправить запросы к cgi-bin / java-rmi.cgi сервлету на tomcat (из apache). Мне удалось перенаправить на сервлет успешно, но я не смог сделать неявное перенаправление (скрытие изменения URL от клиента).

Это mandetory, так как rmi не будет работать, если он перенаправлен, поэтому я должен скрыть это от клиента.

Прямо сейчас мой httpd.conf выглядит так (очевидно, только соответствующие материалы)

RewriteEngine on
RewriteLog logs/rewrite.log
RewriteLogLevel 9
RewriteRule ^/cgi-bin/java\-rmi\.cgi http://localhost/RMIServlet [P]

Alias /RMIServlet "C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0/webapps/RMIServlet"
<Directory "C:/Program Files (x86)/Apache Software Foundation/Tomcat 6.0/webapps/RMIServlet/">
Options Indexes FollowSymLinks
</Directory>

include "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/mod_jk.conf"

Кроме того, мой mod_jk.conf выглядит так (опять же, только соответствующие вещи)

# Send everything!! to worker ajp13
JkMount / ajp13
JkMount /* ajp13

(хотя я предполагаю, что mod_jk.conf не имеет ничего общего с проблемой)

Я также включил это:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module mo

Модули: / mod_rewrite.so

Всякий раз, когда я пытаюсь открыть http://localhost/cgi-bin/java-rmi.cgi, страница открывается с URL http://localhost/RMIServlet, что не очень хорошо.

Что я делаю не так?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 09 августа 2009
  1. Дав не прав, с [P] замена должна быть квалифицированным URI, включая протокол и имя хоста.

  2. Действительно ли mod_proxy активен и настроен правильно? Извините, я не могу вам помочь с этим, так как я еще не использовал это сделать.

  3. Попробуйте определить RMIServlet перед перезаписью URL.

  4. Возможно, после вашего правила происходит еще одно переписывание, попробуйте добавить L для последнего правила, поэтому сделайте его RewriteRule ^/cgi-bin/java\-rmi\.cgi http://localhost/RMIServlet [P,L]

0 голосов
/ 09 августа 2009

Попробуйте вместо этого? (А именно, опустить часть хоста?)

RewriteRule ^/cgi-bin/java\-rmi\.cgi /RMIServlet [P]
...