www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremy Laidman <jlaid...@auug.org.au>
Subject mod_rewrite/5148: Using mod_rewrite to redirect to a URL starting with http: includes path-info when it shouldn't
Date Thu, 14 Oct 1999 13:48:43 GMT

>Number:         5148
>Category:       mod_rewrite
>Synopsis:       Using mod_rewrite to redirect to a URL starting with http: includes path-info
when it shouldn't
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Thu Oct 14 06:50:02 PDT 1999
>Originator:     jlaidman@auug.org.au
>Release:        1.3.9
Linux 2.2.9#13
mod_ssl 2.4.5
openssl 0.9.4
I'm trying to redirect all requests for a set of pages to a secure URL.
However during the processing mod_rewrite prepends path-info to the string
which ends up in the final URL.  eg http://www/this/that.html turns into

The documentation for mod_rewrite states that

    "When you prefix a substitution field with http://thishost[:thisport]
     then mod_rewrite automatically strips it out."

However this isn't happenning for me.

Looking at problem number 3855, it may be related to the fact that I'm rewriting
within a <Location> directive.

Include httpd.conf section thusly:

<Location /proj/>
  AuthName "Intranet"
  AuthType Basic
  AuthUserFile /etc/httpd/auth/apache.auth
  Require valid-user

  # redirect to secure if not secure
  <IfModule mod_rewrite.c>
  <IfDefine SSL>
     RewriteEngine On
     RewriteCond %{ENV:HTTPS} ^$
     RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [L,R]

My rewrite log shows: - authent [14/Oct/1999:10:38:21 +0100] [www/sid#80c31f4][rid#80985a4/initial]
(1) [per-dir /proj/] redirect to https://www/proj/ [REDIRECT/302] - authent [14/Oct/1999:10:38:28 +0100] [www/sid#80c31f4][rid#80985a4/initial]
(3) [per-dir /proj/] add path-info postfix: /home/httpd/html/proj -> /home/httpd/html/proj/ - authent [14/Oct/1999:10:38:28 +0100] [www/sid#80c31f4][rid#80985a4/initial]
(3) [per-dir /proj/] applying pattern '^/(.*)' to uri '/home/httpd/html/proj/' - authent [14/Oct/1999:10:38:28 +0100] [www/sid#80c31f4][rid#80985a4/initial]
(4) RewriteCond: input='on' pattern='!="on"' => matched - authent [14/Oct/1999:10:38:28 +0100] [www/sid#80c31f4][rid#80985a4/initial]
(2) [per-dir /proj/] rewrite /home/httpd/html/proj/ -> https://www/proj/ - authent [14/Oct/1999:10:38:28 +0100] [www/sid#80c31f4][rid#80985a4/initial]
(2) [per-dir /proj/] explicitly forcing redirect with https://www/proj/ - authent [14/Oct/1999:10:38:28 +0100] [www/sid#80c31f4][rid#80985a4/initial]
(1) [per-dir /proj/] escaping https://www/proj/ for redirect - authent [14/Oct/1999:10:38:28 +0100] [www/sid#80c31f4][rid#80985a4/initial]
(1) [per-dir /proj/] redirect to https://www/proj/ [REDIRECT/302]

Similar corruption ocurrs if I redirect to "http" rather than "https".
My workaround is to use this rewrite rule:

    RewriteRule ^/(.*)  https://%{HTTP_HOST}%{REQUEST_URI}      [L,R]
[In order for any reply to be added to the PR database, you need]
[to include <apbugs@Apache.Org> in the Cc line and make sure the]
[subject line starts with the report component and number, with ]
[or without any 'Re:' prefixes (such as "general/1098:" or      ]
["Re: general/1098:").  If the subject doesn't match this       ]
[pattern, your message will be misfiled and ignored.  The       ]
["apbugs" address is not added to the Cc line of messages from  ]
[the database automatically because of the potential for mail   ]
[loops.  If you do not include this Cc, your reply may be ig-   ]
[nored unless you are responding to an explicit request from a  ]
[developer.  Reply only with text; DO NOT SEND ATTACHMENTS!     ]

View raw message