So übergeben Sie Argumente über ProxyPass in Apache

So übergeben Sie Argumente über ProxyPass in Apache

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.

verwandte Informationen