You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Andreas Müller <ap...@universalware.de> on 2005/12/21 09:11:04 UTC

Proxy und Redirect

Hallo zusammen,
ich hab da ein kleines Problem welches ich im Moment nicht so ganz gelöst
bekomme:

- http://www.domain.tld soll umgeleitet werden nach
http://www.domain.tld/Start
- http://www.domain.tld/(.*) soll via Proxy/Reverse an
http://localhost:8080/path/$1 geleitet werden

Mein bisheriger Versuch:

RewriteEngine	On
RewriteRule		^/$	http://www.domain.tld/Start	[R]

ProxyRequests	Off
ProxyPass		/	http://localhost:8080/path/
ProxyPassReverse	/	http://localhost:8080/path/

Klappt nicht da scheinbar der Proxy vor der RewriteRule kommt und daher kein
Redirect durchgeführt wird.

Dagegen klappt das:

RewriteEngine	On
RewriteRule		^/$	http://www.domain.tld/jsp/Start	[R]

ProxyRequests		Off
ProxyPass		/jsp/	http://localhost:8080/path/
ProxyPassReverse	/jsp/	http://localhost:8080/path/

Durch den eingebauten Pfad "jsp" passt dann Proxy nicht also kommt die
RewriteRule dran - und es geht. Nur stört mich das.

Hat jemand ne Idee wie man das lösen könnte ?

Gruß,
Andreas



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: Proxy und Redirect

Posted by Robert Ionescu <ro...@googlemail.com>.
Andreas Müller wrote:
> 
>> RewriteEngine on
>> RewriteRule ^/$	http://www.domain.tld/jsp/Start	[R,L]
>> RewriteRule ^/(.+) http://localhost:8080/path/$1 [P]
>>
>> ProxyPassReverse / http://localhost:8080/path/
> 
> ach sowas geht? D.h. ich kann die Proxy-Option im Rewrite mit dem
> ProxyPassReverse mixen? Das ja geil :-)

Hallo Andreas.

Ja, genau, das funktioniert. Das ist glaube ich sogar in der Manual zur 
Direktive ProxyPassReverse dokumentiert.

-- 
Grüße
Robert


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: Proxy und Redirect

Posted by Andreas Müller <ap...@universalware.de>.
Hallo Robert,

> RewriteEngine on
> RewriteRule ^/$	http://www.domain.tld/jsp/Start	[R,L]
> RewriteRule ^/(.+) http://localhost:8080/path/$1 [P]
> 
> ProxyPassReverse / http://localhost:8080/path/

ach sowas geht? D.h. ich kann die Proxy-Option im Rewrite mit dem
ProxyPassReverse mixen? Das ja geil :-)
Dachte nicht das das geht - das eröffnet ja vollkommen neue Möglichkeiten.

Gruß,
Andreas



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: Proxy und Redirect

Posted by Robert Ionescu <ro...@googlemail.com>.
Andreas Müller wrote:
> RewriteEngine	On
> RewriteRule		^/$	http://www.domain.tld/jsp/Start	[R]
> 
> ProxyRequests		Off
> ProxyPass		/jsp/	http://localhost:8080/path/
> ProxyPassReverse	/jsp/	http://localhost:8080/path/
> 
> Durch den eingebauten Pfad "jsp" passt dann Proxy nicht also kommt die
> RewriteRule dran - und es geht. Nur stört mich das.
> 
> Hat jemand ne Idee wie man das lösen könnte ?

Du könntest das P-Flag der RewriteRule nutzen (ProxPass). Es existieren 
jedoch Bugs betreffend das (nicht vorhandene) escaping von Sonderzeichen 
in der URL. Eine Anfrage von http://www.domain.tld/jsp/ein%20pfad würde 
nicht korrekt unter localhost:8080 ankommen, da über den proxy
.../ein pfad angefordert würde, was dann in einem 400 bad request endet.

RewriteEngine on
RewriteRule ^/$	http://www.domain.tld/jsp/Start	[R,L]
RewriteRule ^/(.+) http://localhost:8080/path/$1 [P]

ProxyPassReverse / http://localhost:8080/path/


-- 
Robert


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------