
Ich versuche Folgendes und stecke fest:
Ich habe einen Apache-Server, der bestimmte URLs abfängt, und für einige davon verwendet er ProxyPass (oder mod_rewrite), um etwas als Reverse-Proxy an eine andere Apache-Instanz zu übergeben.
Ich habe also eine URL wie diese:
/index.php/info?format=xml&token=SOMENUMERICTOKEN&token=SUMENUMERICTOKEN
Ich habe es versucht :
PassProxy /index.php/info?format=xml https://1.2.3.4:567/index.php/info?format=xml
und relevante ProxyReverse, aber es funktioniert nicht
Habe auch versucht, mit denselben Zeilen und der Endung [P] zum Proxying neu zu schreiben.
Keiner davon funktioniert.
Sie würden funktionieren, wenn ich mit /index.php beende, aber ich kann keinen Zugriff auf index.php erlauben
Antwort1
ProxyPass verarbeitet nur den Teil der übereinstimmenden URL und nicht die Abfragezeichenfolge. Wenn Sie die Abfragezeichenfolge in das Muster aufnehmen, erhalten Sie nie eine Übereinstimmung.
Um das gewünschte Ergebnis zu erzielen, verwenden Sie Folgendes:
ProxyPass /index.php/info https://1.2.3.4:567/index.php/info
Obwohl Sie in diesem Fall wahrscheinlich auch Folgendes verwenden könnten:
ProxyPass / https://1.2.3.4:567/
Betrachten Sie ProxyPass grundsätzlich als eine Art „Suchen und Ersetzen“. „ProxyPass A B“ bedeutet im Wesentlichen „Suche A in der URL und ersetze es, falls gefunden, durch B“.
Antwort2
OK.
Ich habe /index.php/info einfach in ProxyPass gelassen und es hat funktioniert. Vielleicht lag es an dem Escapezeichen ?.
Funktioniert.