Discussione:
[1/2 OT] httpd rewrite
(troppo vecchio per rispondere)
Piergiorgio Sartor
2020-07-27 17:34:23 UTC
Permalink
Salve a tutti,

relativamente alla storia dell'altra
volta (httpd proxy), avrei un altro
problema che, nonostante i tentativi,
non riesco a risolvere.

Supponiamo di essere nel caso "proxy",
cioe` la connessione al server httpd
viene "passata" ad un altro server.

Questo server ritorna delle pagine,
le quali hanno dei link.
I link relativi al server stesso sono
"riscritte" in modo da consentire ad
httpd di funzionare a dovere.

Ora, io vorrei riscrivere anche altri
link, che appartengono altrove.

Per esempio, il server ha un "href" a
"http://pippo.com" (esterno), lo vorrei
riscrivere come "/mypage/pippo.com",
oppure "/mypage/?http://pippo.com" o
qualcos'altro.

In particolare *.com deve essere riscritto.

Ho provato con "redirectmatch" e con
"rewritematch", ma non sembra succedere
assolutamente niente.

Sbaglio quasi certamente qualcosa, ma
la documentazione e` per me quasi
incomprensibile e non capisco come fare
ad avere qualche "feedback" dal sistema.

Qualche suggerimento al riguardo?

Grazie anticipatamente,

bye,
--
piergiorgio
Leonardo Serni
2020-07-28 06:51:31 UTC
Permalink
On Mon, 27 Jul 2020 19:34:23 +0200, Piergiorgio Sartor
Post by Piergiorgio Sartor
Per esempio, il server ha un "href" a
"http://pippo.com" (esterno), lo vorrei
riscrivere come "/mypage/pippo.com",
oppure "/mypage/?http://pippo.com" o
qualcos'altro.
Credo che ProxyPassReverse possa essere usato più volte. Non ho controllato,
però.

Leonardo
--
"You all presumably know why" :-) :-(
Alessandro Pellizzari
2020-07-28 07:08:06 UTC
Permalink
Post by Piergiorgio Sartor
Questo server ritorna delle pagine,
le quali hanno dei link.
I link relativi al server stesso sono
"riscritte" in modo da consentire ad
httpd di funzionare a dovere.
Ora, io vorrei riscrivere anche altri
link, che appartengono altrove.
Per esempio, il server ha un "href" a
"http://pippo.com" (esterno), lo vorrei
riscrivere come "/mypage/pippo.com",
oppure "/mypage/?http://pippo.com" o
qualcos'altro.
Se ho capito bene cosa vuoi fare, devi usare un approccio diverso.

redirectmatch e rewritematch "matchano" le connessioni entranti, non
quelle in uscita.

Questo significa che quando il browser si collega a
tuoserver.com/qualcosa, il proxy su "tuoserver.com" vede "/qualcosa" e
può riscriverlo come "/qualcosaltro" prima di processarlo (che sia
mandarlo a un altro server interno o mandarlo a PHP per processarlo, o
altro)

Se tu nel tuo HTML hai un link a http://pippo.com, è il browser che si
collega a pippo.com, e tu non hai nessun controllo sulle sue regole di
matching.

Un reverse proxy non modifica il contenuto dei file che vengono
rimandari indietro.

Quello che ti serve è probabilmente un parser HTML che, prima di mandare
la pagina al browser, riscrive gli URL dentro l'HTML in modo che puntino
al tuo server.

Bye.
Marco
2020-07-28 10:26:26 UTC
Permalink
On Mon, 27 Jul 2020 19:34:23 +0200, Piergiorgio Sartor
Post by Piergiorgio Sartor
Salve a tutti,
relativamente alla storia dell'altra
volta (httpd proxy), avrei un altro
problema che, nonostante i tentativi,
non riesco a risolvere.
Supponiamo di essere nel caso "proxy",
cioe` la connessione al server httpd
viene "passata" ad un altro server.
Questo server ritorna delle pagine,
le quali hanno dei link.
I link relativi al server stesso sono
"riscritte" in modo da consentire ad
httpd di funzionare a dovere.
Ora, io vorrei riscrivere anche altri
link, che appartengono altrove.
Se fai così smettono di funzionare, non credi?
Post by Piergiorgio Sartor
Per esempio, il server ha un "href" a
"http://pippo.com" (esterno), lo vorrei
riscrivere come "/mypage/pippo.com",
oppure "/mypage/?http://pippo.com" o
qualcos'altro.
In particolare *.com deve essere riscritto.
Ho provato con "redirectmatch" e con
"rewritematch", ma non sembra succedere
assolutamente niente.
Sbaglio quasi certamente qualcosa, ma
la documentazione e` per me quasi
incomprensibile e non capisco come fare
ad avere qualche "feedback" dal sistema.
Forse hai bisogno di mod_proxy_html, ma non so se ho capito.
--
Cio' che si vede, e'.
Piergiorgio Sartor
2020-08-01 17:45:16 UTC
Permalink
On 28/07/2020 12.26, Marco wrote:
[...]
Post by Marco
Post by Piergiorgio Sartor
Ora, io vorrei riscrivere anche altri
link, che appartengono altrove.
Se fai così smettono di funzionare, non credi?
Scusa la "tarda" risposta.

Si, questa e` l'idea, di fatto.

[...]
Post by Marco
Forse hai bisogno di mod_proxy_html, ma non so se ho capito.
Infatti, questo funziona.

Thanks,

bye,
--
piergiorgio
Piergiorgio Sartor
2020-07-30 20:22:54 UTC
Permalink
On 27/07/2020 19.34, Piergiorgio Sartor wrote:
[...]
Post by Piergiorgio Sartor
Per esempio, il server ha un "href" a
"http://pippo.com" (esterno), lo vorrei
riscrivere come "/mypage/pippo.com",
oppure "/mypage/?http://pippo.com" o
qualcos'altro.
In particolare *.com deve essere riscritto.
[...]

Per chi fosse interessato, la soluzione
e` usare:

ProxyHTMLURLMap url1 url2

Che sostituisce il primo con il secondo.
Volendo anche con espressioni regolari.

In pratica, la pagina servita da "apache"
viene manipolata.

Ci vanno vari ammennicoli intorno:

ProxyHTMLEnable On
ProxyHTMLExtended On

Un sfilza di:

ProxyHTMLLinks a href
ProxyHTMLLinks area href
...

Ed infine:

SetOutputFilter INFLATE;DEFLATE

Che serve nel caso di html compresso...

Pero` funziona, avendo il regexp corretto
nella sostituzione... :-)

bye,
--
piergiorgio
Piergiorgio Sartor
2020-07-30 20:23:51 UTC
Permalink
On 27/07/2020 19.34, Piergiorgio Sartor wrote:
[...]
Come al solito, dimenticavo qualcosa:

http://www.apachetutor.org/admin/reverseproxies

E` un tutorial decente (ma forse si
potrebbe fare meglio).

bye,
--
piergiorgio
Continua a leggere su narkive:
Loading...