Ingo: neue URL direkt an Browser übermitteln, ohne JS oder Meta-Refresh zur Weiterleitung?

Boah, was ne Überschrift ?! ;)

Ich hab den Rachen voll, Weiterleitungen mit Perl immer so zu machen, das ich entweder eine Datei lese und sie dann in den Browser schreibe, oder einfach eine leere Seite mit Meta HTTP-Refresh oder 'nem Javascript ausgebe, die dann die Weiterleitung durchführen.

Ich würde gern die neue URL einfach direkt an den Browser übermitteln, mir fiel jedoch bisher nichts ein/auf wie ich das realisieren kann ... Über %Env ? - ich weiß nicht ..... Wer hilft ?

regards,
Ingo

  1. Boah, was ne Überschrift ?! ;)

    Ich hab den Rachen voll, Weiterleitungen mit Perl immer so zu machen, das ich entweder eine Datei lese und sie dann in den Browser schreibe, oder einfach eine leere Seite mit Meta HTTP-Refresh oder 'nem Javascript ausgebe, die dann die Weiterleitung durchführen.

    Ich würde gern die neue URL einfach direkt an den Browser übermitteln, mir fiel jedoch bisher nichts ein/auf wie ich das realisieren kann ... Über %Env ? - ich weiß nicht ..... Wer hilft ?

    regards,
    Ingo

    Und doch - kaum nachdem ich die Frage stellte, erhielt ich auch schon die Antwort - Wers auch braucht:

    Einfach mit Headern arbeiten.

    $Redirection = "http://www.drogenfahndung.de";

    print "HTTP/1.0 302 Found\n";
    print "Location: ",$Redirection,"\n\n";

    oder
    print "HTTP/1.0 302 Found\n";
    print "Window-target: ",$Frame,"\n"
    print "Location: ",$Redirection,"\n\n";

    um die Ausgabe nach Frame $Frame zu lenken.

    Es darf jedoch vorher noch kein anderer Header ausgegeben worden sein (z.B. print "Content-type: text/html\n\n";)

    Na denn, 'til next ...
    ;)

    1. Hi Ingo!

      print "HTTP/1.0 302 Found\n";
      print "Window-target: ",$Frame,"\n"
      print "Location: ",$Redirection,"\n\n";

      Es darf jedoch vorher noch kein anderer Header ausgegeben worden sein (z.B. print "Content-type: text/html\n\n";)

      Meines Wissens darf man, und wird auch oft gemacht. Ganz alte Browser unterstuetzen den Redirect naemlich unter Umstaenden nicht, fuer diese wird dann noch ein normales Dokument angehaengt:

      print << "BYE_BYE";
      Window-target: $Frame
      Location: $Redirection
      Content-type: text/html

      <HTML><BODY>This document has moved <A HREF="$Redirection">here</A></BODY></HTML>
      BYE_BYE

      Auch Bye bye, Calocybe

  2. Hallo Ingo

    Dazu gibt es den HTTP-Befehl Location. Gib einfach anstelle des Content-Type den Location-Befehl mit einer vollständigen URI (auf STDOUT) aus.

    print "Location: http://www.irgendwas.com/index.html";

    Mehr dazu in RFC 2616 zu HTTP 1.1: ftp://ftp.isi.edu/in-notes/rfc2616.txt

    Ich hoffe, damit geholfen zu haben.

    Grüsse
    Tom