MatzeA: SSI Apache soll HttpReferer an Perl ssi Script weiter geben.

Servus,

wie schon im Betreff steht, wie kann ich dem Apache beibringen, dass er beim Zugriff auf eine Datei z.B: config.shtml, das als SSI angesprochene Script die Referer Daten ebenfalls bekommt.

Den Weg das Script direkt aufzurufen möchte Ich nicht gehen.

Gruss Matze

  1. Moin!

    wie schon im Betreff steht, wie kann ich dem Apache beibringen, dass er beim Zugriff auf eine Datei z.B: config.shtml, das als SSI angesprochene Script die Referer Daten ebenfalls bekommt.

    Wenn du mit <!--#include virtual --> einbindest, sollte das Skript eigentlich eine vernünftige CGI-Umgebung kriegen, in der das alles drinsteht.

    Funktioniert bei mir zumindest mit PHP-Skripten auf diese Weise.

    - Sven Rautenberg

    --
    "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
    (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
    1. Hi,

      bei mir sieht es grad mal so aus:

      <!--#exec cgi="/cgi-bin/configurations/config_values_ssi.cgi"-->

      Kann ich das nun einfach so

      <!--#include virtual cgi="/cgi-bin/configurations/config_values_ssi.cgi"-->

      tauschen?

      Gruss Matze

      1. Moin!

        Kann ich das nun einfach so tauschen?

        Kannst du es einfach so ausprobieren?

        - Sven Rautenberg

        --
        "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
        (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
        1. Hi,

          nein aktuell nicht :-))
          Bin erst später wieder am richtigen Netz :-))

          Gruss Matze

          1. Moin!

            nein aktuell nicht :-))
            Bin erst später wieder am richtigen Netz :-))

            Ok, dann teste das eben später.

            Die in virtual="/skript" angegebene Adresse bezieht sich auf den URL-Raum des Servers, ist also relativ zu DocumentRoot zu sehen.

            - Sven Rautenberg

            --
            "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
            (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
            1. Servus,

              Ok, dann teste das eben später.

              Die in virtual="/skript" angegebene Adresse bezieht sich auf den URL-Raum des Servers, ist also relativ zu DocumentRoot zu sehen.

              Das war ja beim <!--#exec
              ebenfalls der Fall.
              Demnach macht also dieses include virtual das gleiche.

              Kann mich nur waage daran erinnern, dass ich mit dem include irgendwie Probleme mit dem Apache bekam.

              Ja gut auf jeden Fall vielen Dank :-)

              Gruss Matze

              1. Hallo!

                Ich bin zwar nicht der SSI-Experte, aber nach meinem Gefühl kann Dein Vorhaben nur scheitern.

                Wenn ich ein CGI-Script über eine Datei aufrufe, egal ob über einen Link oder oder ein Formualar-"action", dann steht unter $ENV{HTTP_REFERER} der Referer.

                Beim SSI jedoch gibt es m.E. einen solchen Referer nicht, jedenfalls keinen Referer von der Datei, die die SSI-Anweisungen enthält. Es existiert ja keine "URL-Referenz".

                Habe ich recht oder sehe ich das richtig? :)

                Viele Grüße aus Frankfurt/Main,
                Patrick

                1. Servus,

                  Wenn ich ein CGI-Script über eine Datei aufrufe, egal ob über einen Link oder oder ein Formualar-"action", dann steht unter $ENV{HTTP_REFERER} der Referer.

                  Beim SSI jedoch gibt es m.E. einen solchen Referer nicht, jedenfalls keinen Referer von der Datei, die die SSI-Anweisungen enthält. Es existiert ja keine "URL-Referenz".

                  Habe ich recht oder sehe ich das richtig? :)

                  Soweit dachte ich das auch, aber der Apache weiss es, und warum soll wenn er das Script aufruft diese Info nicht weiter geben?

                  Und da überzeugt mich die Aussage von Sven:
                  [pref:t=64190&m=364946]

                  Von daher werde ich es zumindest ausprobieren.

                  Gruss Matze

                  1. Hallo Matze!

                    Von daher werde ich es zumindest ausprobieren.

                    Und das habe ich eben. Kleiner Perlscript:

                    #!/usr/bin/perl -w
                    use CGI::Carp qw(fatalsToBrowser);
                    print $ENV{HTTP_REFERER};

                    und in eine ssi_referer_test.shtml genannte Datei eingebunden:

                    Hier über include virtual: <!--#include virtual="/cgi-bin/ssi_referer.cgi"--><br><br>
                    Hier über exec cgi: <!--#exec cgi="/cgi-bin/ssi_referer.cgi"-->

                    Der kleine Xitami (mein lokaler Webserver) zeigt beim include virtual den Scripttext und als Referer beim exec cgi dies hier:

                    /ssi_referer_test.shtml

                    Apache (Atomic Eggs) bringt beim include virtual die übliche "[an error occurred while processing this directive]"-Meldung und beim exec cgi nichts, also kein Referer. Das bedeutet: die Datei, welche die Anweisungen enthält, wird nicht als Referer genommen (Tests mit IE und Mozilla) - wie ich vermutete. Ob man das in der Apache-Konfig ändern kann, entzieht sich voll meiner Kenntnis.

                    Viele Grüße aus Frankfurt/Main,
                    Patrick

        2. Servus,

          naja das geht leider nicht.
          Wenn ich die config.html aufrufe und mit "Deiner" Include Anweisung versuche das Script auszuführen passiert nix.
          Im Errr Log herscht gähnende Leere und das access Log sagt grad mal
          die config.html wurde ausgeliefert.

          Naja die raucht auch auf mit dem Rumpf, das was jedoch das Script liefern sollte fehlt.
          Tausch ich es gegen exec klappt es wieder.

          ?!? Muss da noch was in der http.conf geaendert werden?
          Der Doku konnte ich noch nicht`s entnehmen was darauf hinweist.

          Achja Apache 2.0.47

          Gruss Matze

          1. Moin!

            Wenn ich die config.html aufrufe und mit "Deiner" Include Anweisung versuche das Script auszuführen passiert nix.
            Im Errr Log herscht gähnende Leere und das access Log sagt grad mal
            die config.html wurde ausgeliefert.

            Und welcher Quelltext wird da ausgeliefert? Ich will mich bei der Syntax nicht 100% festlegen, aber wenn's nicht funktioniert, steckt ja vielleicht ein Fehler drin.

            - Sven Rautenberg

            --
            "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
            (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
            1. Hi,

              naja im Prinzip:

              <html>
              </html>

              Diese include Target taucht im Quelltext nicht auf.
              Also die Syntax müsste somit schon richtig sein vermute ich mal.

              Gruss Matze