httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eggert Ehmke <eggert.eh...@berlin.de>
Subject Re: [users@httpd] Rewrite problem solved
Date Tue, 18 Feb 2014 21:51:54 GMT
In the end I managed to solve the problem only with rewrite rules. The 
solution might not be perfect, but it works.

      # send back requests from the old server
      RewriteCond %{HTTP_REFERER} !^$
      RewriteCond %{HTTP_REFERER} ^http://123.123.123.123:8080/site/ [NC]
      RewriteRule ^/(.*) http://123.123.123.123:8080/site/$1 [L,R]
      
      # all requests to oldserver 
      RewriteRule ^/oldserver/(.*)$ http://123.123.123.123:8080/site/$1 [L,R]

      RewriteCond %{HTTP_REFERER} !^http://123.123.123.123:8082/site/ [NC]
      RewriteRule ^/(.*) ... (rewrite to local zope server)

the key seem to be the capture of HTTP_REFERER, because REMOTE_ADDR was not 
usable.
-ee


Am Montag 17 Februar 2014, 19:39:50 schrieb Yehuda Katz:
> Your best bet might be to do your own reverse proxy to the old server which
> will allow HTTPD to rewrite the links for you.
> Rewrite rules are not appropriate for this situation.
> 
> Look at ProxyPass and ProxyPassReverse.
> 
> - Y
> 
> On Mon, Feb 17, 2014 at 7:05 PM, Eggert Ehmke <eggert.ehmke@berlin.de>wrote:
> > I took over a domain that was previosly hosted on anther server. The new
> > web
> > portal works fine. We still need to access the old portal, which is
> > accessible
> > via a nonstandard port like http://oldserver:8080. However, the old web
> > portal
> > contains internal absolute links, which now of course point to the new
> > portal.
> > So the old portal is broken.
> > 
> > I tried to implement some rewrite rules to prevent the new server to
> > accept
> > 
> > requests from the old server, but this does not seem to work. I tried:
> >       RewriteCond %{REMOTE_ADDR} ^123.123.123.123$
> >       RewriteRule ^/(.*) http://123.123.123.123:8080/$1 [P]
> >       
> >       RewriteCond %{REMOTE_ADDR} !^123.123.123.123$
> >       RewriteRule ^/(.*) http://localhost:8090...
> > 
> > (123.123.123.123 represents the IP of the old server). So if the request
> > comes
> > from the old server, send it back. If not, process the process local.
> > 
> > The problem is that REMOTE_ADDR does not match the IP of the other server.
> > There might be a proxy between.
> > 
> > Is there a solution, or did I shoot into my knee?
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
> > For additional commands, e-mail: users-help@httpd.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message