I hope someone from the official dev team can merge this into the next release of apache httpd.

Please find attached an svn diff made against revision 820823 of:
http://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x/modules/mappers/mod_rewrite.c

This diff fixes the Bug 29744 on the Bugzilla:
  Bug: https://issues.apache.org/bugzilla/show_bug.cgi?id=47928
  Patch: https://issues.apache.org/bugzilla/attachment.cgi?id=24329
  
This fix allows mod_rewrite to handle CONNECT requests (by not trying to fully qualify the substitution string).
The current behavior is that mod_rewrite tries to connect to http[s]://ourhost[:ourport]/host:port.

I verified with the RFC (http://www.ietf.org/rfc/rfc2817.txt):
   A CONNECT method requests that a proxy establish a tunnel connection
   on its behalf. The Request-URI portion of the Request-Line is always
   an 'authority' as defined by URI Generic Syntax [2], which is to say
   the host name and port number destination of the requested connection
   separated by a colon:

      CONNECT server.example.com:80 HTTP/1.1
      Host: server.example.com:80
This patch will allow a CONNECT request to simply connect to the host:port specified in the substitution string of the rewrite rule.

The bug page listed above gives more details.

The patch is so small that I'm also pasting it into the body of this email for your quick review.

--- mod_rewrite.c       (revision 820823)
+++ mod_rewrite.c       (working copy)
@@ -845,7 +845,10 @@
  */
 static void fully_qualify_uri(request_rec *r)
 {
-    if (!is_absolute_uri(r->filename)) {
+    if (r->method_number == M_CONNECT) {
+        return;
+    }
+    else if (!is_absolute_uri(r->filename)) {
         const char *thisserver;
         char *thisport;
         int port;


Hopefully this is enough detail to help.

Thank you,
BillZ