2016-08-19 3 views
0

Ich habe ein Apache-Reverse-Proxy wie folgt aufgebaut:Reverse-Proxy nach nicht Umschreiben Lage umleiten

<Location /test> 
    ProxyPass https://exampleUrl.com retry=0 ttl=50 
    ProxyPassReverse https://exampleUrl.com 
</Location> 

Ich bin ein Token zu senden mit meiner Anfrage anmelden https://localUrl/test/login.php?token=

ich durch das Fern weitergeleitet Server und der Reverse-Proxy schreibt den Standort richtig um: /test/sso.php?id=61127
Meine Anfrage an /test/sso.php?id=61127 wird erneut umgeleitet, aber dieses Mal wird der Standort nicht richtig umgeschrieben: /status/sso.php

Also ich t versucht, die Ressource auf meinem eigenen Server zu finden, während sie auf den Proxy verweisen sollte: /test/status/sso.php

Was mache ich falsch, warum wird der zweite Umleitungsort nicht neu geschrieben?

Antwort

0

Zuerst sollten Sie Schrägstriche in der ProxyPass-Direktive immer übereinstimmen müssen, das heißt in diesem Fall: https://exampleUrl should be https://exampleUrl/, denn das ist es, und Sie sollten dasselbe in der ProxyPassReverse-Direktive tun.

In jedem Fall prüfen, besser die Antworten aus dem Backend folgende Unterlagen an den LogFormat Hinzufügen Sie verwenden:

%{Location}o 

Es wird gedruckt, was Lage das Backend ist das Senden und helfen zu verstehen, was falsch läuft, Wenn passende Schrägstriche Ihr Problem nicht lösen, falls Ihr Backend einen/Status sendet, für den Sie nicht proxiieren.

+0

Die Schrägstriche haben mein Problem gelöst, danke. – Bas