httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Arnold <carn...@electrichendrix.com>
Subject Re: [users@httpd] Rewrite Rule
Date Thu, 25 Apr 2013 15:13:26 GMT


From: "Chris Arnold" <carnold@electrichendrix.com> 
To: users@httpd.apache.org 
Sent: Wednesday, April 24, 2013 3:21:25 PM 
Subject: Re: [users@httpd] Rewrite Rule 

On Apr 24, 2013, at 2:00 PM, "Chris Arnold" wrote: 

> On Apr 23, 2013, at 8:39 PM, "Chris Arnold" wrote: 
> 
> > Apache 2.12.x on SLES11 SP2. We have a RDS server behind an apache server using
proxypass. We need users to get to the RDS server using https://apps.domain.tld. The apache
server should catch this request and send/rewrite to https://apps.domain.tld/rds/something/something/login.whatever.
We have a ssl virtual host and in this virtual host i have a rewrite statement: 
> > 
> > RewriteEngine On 
> > RewriteCond %{HTTP_HOST} ^apps\. 
> > RewriteCond %{HTTPS} on 
> > RewriteRule ^/(.*) https://192.168.123.7/$1 [P] 
> > #RedirectMatch ^/$ /rds/something/something/login.whatever 

RewriteEngine On 
RewriteLog /var/log/apache2/rewrite.log 
RewriteLogLevel 3 
RewriteCond %{HTTP_HOST} ^apps\. 
RewriteCond %{HTTPS} on 
RewriteRule ^/(.*) https://192.168.123.7/sub/ [R] 

OK, i have turned on rewrite log and this is what i get in the log: 

initial] (2) init rewrite engine with requested uri / 
/initial] (3) applying pattern '^/(.*)' to uri '/' 
/initial] (3) applying pattern '^/(.*)' to uri '/' 
/initial] (2) rewrite '/' -> 'https://192.168.123.7/rdweb/' 
/initial] (2) explicitly forcing redirect with https://192.168.123.7/rdweb/ 
/initial] (3) applying pattern '^/(.*)' to uri 'https://192.168.123.7/rdweb/' 
/initial] (1) escaping https://192.168.123.7/rdweb/ for redirect 
/initial] (1) redirect to https://192.168.123.7/rdweb/ [REDIRECT/302] 

As you can see this works fine. However, i am on the same network segment as 192.168.123.7
and the URL in the browser is https://192.168.123.7/sub/sub/sub/login.whatever and this does
not/will not work when not on the same network segment. So i changed the rewriterule to: 
^/(.*) https://apps.domain.tld: 

RewriteEngine On RewriteLog /var/log/apache2/rewrite.log 
RewriteLogLevel 3 
RewriteCond %{HTTP_HOST} ^apps\. 
RewriteCond %{HTTPS} on 
RewriteRule ^/(.*) https://apps.domain.tld/sub/ [R] 

and this is in the rewrite log from the above: 

/initial] (2) init rewrite engine with requested uri /sub/ 
/initial] (3) applying pattern '^/(.*)' to uri '/syb/' 
/initial] (3) applying pattern '^/(.*)' to uri '/sub/' 
/initial] (2) rewrite '/sub/' -> 'https://apps.domain.tld/sub/' 
/initial] (2) explicitly forcing redirect with https://apps.domain.tld/sub/ 
/initial] (3) applying pattern '^/(.*)' to uri 'https://apps.domain.tld/sub/' 
/initial] (1) escaping https://apps.domain.tld/sub/ for redirect 
/initial] (1) redirect to https://apps.domain.tld/sub/ [REDIRECT/302] 
/initial] (2) init rewrite engine with requested uri /sub/ 
/initial] (3) applying pattern '^/(.*)' to uri '/sub/' 
/initial] (3) applying pattern '^/(.*)' to uri '/sub/' 
/initial] (2) rewrite '/sub/' -> 'https://apps.domain.tld/sub/' 
/initial] (2) explicitly forcing redirect with https://apps.domain.tld/sub/ 
/initial] (3) applying pattern '^/(.*)' to uri 'https://apps.domain.tld/sub/' 
/initial] (1) escaping https://apps.domain.tld/sub/ for redirect 
/initial] (1) redirect to https://apps.domain.tld/sub/ [REDIRECT/302] 

And this keeps repeating until i stop it. This looks like the rewrite loop but i am under
the impression that by default max redirects=10 and should stop after 10. 
Any ideas as to what is going on with the rewrite statements? 

Mime
View raw message