Hi.

I have a problem at tbe border between Apache httpd's mod_rewrite and the mod_jk Apache/Tomcat connector.

Versions are :
Apache httpd 2.2.3
mod_jk 1.2.18
OS : Linux Debian  2.6.18-6-686 #1 SMP Thu May 8 07:34:27 UTC 2008 i686 
GNU/Linux

(Not the latests versions, I know, but that's what that system has and the problem may not be version-linked, and there is something sweet about packages which just install/upgrade with apt-get)

The request URL I am using is
http://hostname/jsp/search.jsp

In the Apache httpd config, is the following RewriteRule :

    RewriteCond %{REQUEST_URI} ^/jsp/(.*)$
    RewriteRule ^/jsp/ /mir/%1 [PT]

OR, more simply (but with the same result at the end) :

    RewriteRule ^/jsp/(.*)$ /mir/$1 [PT]

plus a Location section as follows :

<Location /mir>
  SetHandler jakarta-servlet
</Location>

(OR the following, to the same end-effect also :
  JkMount /mir ajp13
  JkMount /mir/* ajp13
)


The above rewrite rule should rewrite /jsp/search.jsp to /mir/search.jsp
and it does, as per the mod_rewrite log :

[rid#8c06030/initial] (2) init rewrite engine with requested uri /jsp/search.jsp
[rid#8c06030/initial] (2) rewrite '/jsp/search.jsp' -> '/mir/search.jsp'
[rid#8c06030/initial] (2) forcing '/mir/search.jsp' to get passed through to next API URI-to-filename handler

But then, in the mod_jk log, I see this :

...
[Tue Jun 15 11:26:15 2010] [9170:30400] [debug] map_uri_to_worker::jk_uri_worker_map.c (508): Attempting to map URI '/mir/search.jsp' from 2 maps [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] map_uri_to_worker::jk_uri_worker_map.c (520): Attempting to map context URI '/mir/*' [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] map_uri_to_worker::jk_uri_worker_map.c (534): Found a wildchar match ajp13 -> /mir/* [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] jk_handler::mod_jk.c (1832): Into handler jakarta-servlet worker=ajp13 r->proxyreq=0 [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] wc_get_worker_for_name::jk_worker.c (111): found a worker ajp13 [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] init_ws_service::mod_jk.c (531): Service protocol=HTTP/1.1 method=GET host=(null) addrr=84.158.163.2 name=(hostname) port=80 auth=(null) user=(null) laddr=192.168.245.20 raddr=84.158.163.2 [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] ajp_get_endpoint::jk_ajp_common.c (2172): acquired connection pool slot=0 [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] ajp_marshal_into_msgb::jk_ajp_common.c (566): ajp marshaling done [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] ajp_service::jk_ajp_common.c (1706): processing ajp13 with 2 retries [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] ajp_connection_tcp_send_message::jk_ajp_common.c (909): sending to ajp13 pos=4 len=424 max=8192 [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] ajp_connection_tcp_send_message::jk_ajp_common.c (909): 0000 12 34 01 A4 02 02 00 08 48 54 54 50 2F 31 2E 31 - .4......HTTP/1.1 [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] ajp_connection_tcp_send_message::jk_ajp_common.c (909): 0010 00 00 0F 2F 6A 73 70 2F 73 65 61 72 63 68 2E 6A - .../jsp/search.j [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] ajp_connection_tcp_send_message::jk_ajp_common.c (909): 0020 73 70 00 00 0C 38 34 2E 31 35 38 2E 31 36 33 2E - sp...84.158.163. [Tue Jun 15 11:26:15 2010] [9170:30400] [debug] ajp_connection_tcp_send_message::jk_ajp_common.c (909): 0030 32 00 FF FF 00 17 6D 69 72 2E 64 65 76 2E 77 69 - 2.....mir.dev.wi
...

In other words, it appears to receive the URI "/mir/search.jsp", try to map it to a worker, succeed, but then forwarding the request to Tomcat as "/jsp/search.jsp" anyway (which was the original URL, not the rewritten one). This "/jsp/search.jsp" is indeed not found by Tomcat (because in Tomcat it is "/mir/search.jsp"), and I receive in return a 404 error page from Tomcat.

I have tried umpteen variations for the mapping and the rewrite rule, without 
success.

What am I doing wrong ?
Or, was this a bug in mod_jk 1.2.18, since corrected ?
(But I find nothing that appears relevant in the Changes log at http://tomcat.apache.org/connectors-doc/miscellaneous/changelog.html)

Thanks




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to