2009-08-09 2 views
1

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

Я пытаюсь перенаправить запросы на 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, который не является хорошим.

Что я делаю неправильно?

Спасибо!

ответ

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

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

  3. Попробуйте определить RMIServlet перед переписыванием URL.

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

0

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

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

Спасибо, но это не сработало. :-((ничего не изменилось ...) – Ben

+0

О, я неправильно понял проблему. У вас есть какие-либо другие RewriteRules? – Amber

+0

У меня нет всех изменений, которые я сделал (кроме файла employee.properties) вставляемый здесь. – Ben

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