Apache interne Weiterleitung? Ruby


mistirios

Mitglied
Hallo,

ich möchte folgendes szenario realisieren. Ich greife mit dem Client auf das cgi program xy.cgi zu. Das cgi soll dann eine weiterleitung an z.b .index.html machen und dann den Inhalt direkt an den Client zurückgeben.

Mein Problem ist,ich weiss nicht wie ich so eine interne Weiterleitung hinbekommen soll.

Mit print cgi.header({'Status'=>'302','location'=>'/index.html'}) reicht der Webserver ja die location direkt an den Client weiter und der Client muss dann nochmal ein request auf die neu url machen. Ich möchte aber das der Inhalt von .index.html an den Client zurückgegeben wird und nicht nur die neu url. Sprich es soll sozusagen ein internes GET /index.html auf den Apache stattfinden.

mfg
 

GH@NDI

Erfahrenes Mitglied
So wie du dir das vorstellst, ist das nicht möglich.

Eine Weiterleitung im Sinne von HTTP bedeutet schlicht, der Client bekommt lediglich mitgeteilt, dass der gesuchte Inhalt unter einer anderen Adresse auffindbar ist.

Ob der Client letztlich tatsächlich die neue URL Aufruft oder nicht, bleibt ihm dann überlassen. Einer HTTP-Antwort mit Code 302 darf meines Wissens nach auch keinen Content im Body enthalten, bzw. wenn sich dort einer befindet, wird dieser vom Client wohl ziemlich sicher ignoriert.

Du könntest natürlich mittels ruby einfach die index.html öffnen und an den Client als text/html ausliefern. Das führt aber dazu, dass die URL in der Adresszeile die selbe bleibt. Was vermutlich auch nicht ganz dem Entspricht, was du dir wünscht.