1

一段时间以来,我一直在尝试这样做,但没有成功。我会提前说这可能是一个新手问题,所以很抱歉,但我确实需要一些帮助。

我正在尝试将对 cgi-bin/java-rmi.cgi 的请求重定向到 tomcat 上的 servlet(来自 apache)。我已经成功地重定向到 servlet,但我无法进行隐式重定向(隐藏客户端的 url 更改)。

这是强制性的,因为如果它被重定向,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

dules/mod_rewrite.so

每当我尝试打开http://localhost/cgi-bin/java-rmi.cgi时,页面打开时的 url http://localhost/RMIServlet并不好。

我究竟做错了什么?

谢谢!

4

2 回答 2

0

试试这个?(即,省略主机部分?)

RewriteRule ^/cgi-bin/java\-rmi\.cgi /RMIServlet [P]
于 2009-08-09T08:24:34.097 回答
0
  1. Dav 是错误的,用 [P] 替换需要是一个合格的 URI,包括协议和主机名。

  2. mod_proxy 真的有效且配置正确吗?抱歉,我无法帮助您,因为我还没有这样做过。

  3. 在重写 URL 之前尝试定义 RMIServlet。

  4. 也许在你的规则之后还有另一个重写,尝试在最后一条规则后面附加 L,所以让它RewriteRule ^/cgi-bin/java\-rmi\.cgi http://localhost/RMIServlet [P,L]

于 2009-08-09T14:28:42.143 回答