U. Geissler: SSI von einem externen Server

Kann ich eine Datei mittels SSI von einem externen Server mittels
SSI einbinden. Die Zeile
<!--#include virtual="http://www.ulr.de/intern/navigation/navigation.htm"-->

bringt eine Fehlermeldung mit dem Hinweis, die Datei sei nicht vorhanden, bzw. [an error occurred while processing this directive]
Die Datei ist aber definitiv da und SSI ist auch erlaubt! Ich nehme an, sie wird auf dem Server gesucht, von dem die datei mit dem SSI aufgerufen wird.

Was mach ich falsch?

  1. Hi,

    Kann ich eine Datei mittels SSI von einem externen Server mittels
    SSI einbinden.

    nein. SSI heißt _Server Side_ Include, nicht _Internet Wide_ Include. Du kannst ausschließlich lokale Ressourcen einbinden.

    Diese können allerdings (ggf.) HTTP-Requests ausführen, etwa wenn Du ein Perl-Script einbindest, das LWP::Simple verwendet.

    Cheatah

    1. Hallo liebe Forumsadministratoren!

      Kann ich eine Datei mittels SSI von einem externen Server mittels
      SSI einbinden.

      Aus gegebenem Anlass (im aktuell thread sogar zweimal vorhanden glaub ich) würde ich vorschlagen dieses Thema irgendwie in die FAQ oder Auslese einzubauen, kommt ja wirklich alle paar Wochen mal diese Frage !

      Dann bräuchte man nur mehr einen Link auf die Auslese machen, und meine default.reply-Datei wär einen Eintrag reicher ;-)

      lg bernhard

      1. Dann bräuchte man nur mehr einen Link auf die Auslese machen, und meine default.reply-Datei wär einen Eintrag reicher ;-)

        Mach ... http://www.teamone.de/selfhtml/sfausles/tsfa_teb.htm

        1. Hi!

          Mach ... http://www.teamone.de/selfhtml/sfausles/tsfa_teb.htm

          Themaverfehlung *fg*

          In beiden Links (die ich wohl kenne und konsultiert habe) steht leider nirgends dass man über SSI keine Scripts via http von einem _anderen Server_ einbinden kann, und es liegt in der Natur des Menschen, zu glauben dass es möglich ist, wenn nicht ausdrücklich da steht dass es nicht möglich ist ;-)

          Es gäbe ja eigentlich nicht sooo viel darüber zu sagen, einfach dass es nicht geht. Aber anscheinend 1) beschäftigt das die Leute öfter und 2) finden sie darauf keine Antwort

          lg bernhard

          1. Hi!

            In beiden Links (die ich wohl kenne und konsultiert habe) steht leider nirgends

            aber das wäre die Stelle, wo Du es eintragen könntest (Initiativstrafe).

            es liegt in der Natur des Menschen, zu glauben dass es möglich ist, wenn nicht ausdrücklich da steht dass es nicht möglich ist ;-)

            oder dem Link meines anderen Postings gefolgt wären.

            1. Hallo Linksetzer

              tss tss - also Linksetzer diskutieren doch nicht! Das ist ja wie wenn ein Gespenst sich in der Mittatssonne aalt ... ;-)

              viele Gruesse
                Stefan Muenz

              1. tss tss - also Linksetzer diskutieren doch nicht! Das ist ja wie wenn ein Gespenst sich in der Mittatssonne aalt ... ;-)

                http://www.sorry.net/
                http://www.sorry.org/
                http://www.sorry.com/
                http://www.sorry.de/

                1. tss tss - also Linksetzer diskutieren doch nicht! Das ist ja wie wenn ein Gespenst sich in der Mittatssonne aalt ... ;-)

                  http://www.sorry.net/
                  http://www.sorry.org/
                  http://www.sorry.com/
                  http://www.sorry.de/

                  http://www.hilft.nix

                  nönö, das entschuldigen hift da gar nichts mehr, was liegt das pickt sagt ma bei uns! Ich hab den Linksetzer ausgetrickst *hihi* das werd ich mir jetzt gleich mal an meinen Hut heften! -- Hab schon kräftig gevotet, damit das auch alles archiviert wird *fg*

                  Die Initiativstrafe hat sich dank Franks Posting auch danbarerweise in Luft aufgelöst, .... Erfolg auf der ganzen Linie :o)

                  lg bernhard *derschadenfrohe*

                    1. Hi Cheatah,

                      http://www.hilft.nix

                      http://www.funzt.net/

                      http://www.kennich.de ;-) (Das hab ich übrigens selber herausgetippt, das Words2Links hat den nicht gefunden)

                      http://www.teamone.de/selfhtml/sfarchiv/2000_3/t20965.htm#a106817

                      lg bernhard

      2. Kann ich eine Datei mittels SSI von einem externen Server mittels
        SSI einbinden.

        http://www.teamone.de/selfhtml/tgbe.htm#bottom

    2. Moin,

      Du kannst ausschließlich lokale Ressourcen einbinden.
      Diese können allerdings (ggf.) HTTP-Requests ausführen, etwa wenn Du ein Perl-Script einbindest, das LWP::Simple verwendet.

      das kann der Apache netterweise auch alleine mit einem Zusammenspiel aus mod_rewrite und mod_proxy ;)

      Viele Gruesse,

      n.d.p.

  2. Na ja mit SSI schaffst Du es nicht, schließlich heißt SSI ServerSideIncludes und nicht InternetWideIncludes.

    Aber im Webmasterbereich bei http://www.GRATISLINKS.de/ hab ich mal einen Link zu folgendem Script gefunden, mit dem geht`s:

    #!/usr/bin/perl
    ################ Installation #####################################################################
    #1. Upload lwptest.cgi to your cgi-bin
    #2. Change the file permissions (lwptest.cgi) to 755
    #3. Go to lwptest.cgi on your server to see if you have the LWP::Simple Perl module.
    #   If you do not then this scripts will no work.
    #4. Upload allinone.cgi to your cgi-bin
    #5. Change the file permissions (allinone.cgi) to 755
    #6. Test the program by going to http://yourserver.com/allinone.cgi?url=http://yahoo.com
    #   if it displays Yahoo! then it is working.
    #7. To test SSI put
    #   <!--#exec cgi="serverpath/to/the/directory/allinone.cgi?url=http://yahoo.com" -->
    #   If you put the HTML file in the same directory as allinone.cgi, then all you need is:
    #   <!--#exec cgi="/allinone.cgi?url=http://yahoo.com" -->
    #   if it displays Yahoo! on your webpage, the SSI feature is working fine.

    ################################## Do not Edit Beyond this Point ##################################
    use LWP::Simple;
    print "Content-type: text/html\n\n";
    &Parse_Form;
    $url = $formdata{'url'};
    if ($url ne "") {
     $html = get $url;
     print "$html";
    } else {
    }
    sub Parse_Form {
     if ($ENV{'REQUEST_METHOD'} eq 'GET') {
      @pairs = split(/&/, $ENV{'QUERY_STRING'});
     } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') {
      read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
      @pairs = split(/&/, $buffer);

    if ($ENV{'QUERY_STRING'}) {
       @getpairs =split(/&/, $ENV{'QUERY_STRING'});
       push(@pairs,@getpairs);
       }
     } else {
      print "Content-type: text/html\n\n";
      print "<P>Use Post or Get";
     }

    foreach $pair (@pairs) {
      ($key, $value) = split (/=/, $pair);
      $key =~ tr/+/ /;
      $key =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
      $value =~ tr/+/ /;
      $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

    $value =~s/<!--(.|\n)*-->//g;

    if ($formdata{$key}) {
       $formdata{$key} .= ", $value";
      } else {
       $formdata{$key} = $value;
      }
     }
    }
    1;

    Kann ich eine Datei mittels SSI von einem externen Server mittels
    SSI einbinden. Die Zeile
    <!--#include virtual="http://www.ulr.de/intern/navigation/navigation.htm"-->

    bringt eine Fehlermeldung mit dem Hinweis, die Datei sei nicht vorhanden, bzw. [an error occurred while processing this directive]
    Die Datei ist aber definitiv da und SSI ist auch erlaubt! Ich nehme an, sie wird auf dem Server gesucht, von dem die datei mit dem SSI aufgerufen wird.

    Was mach ich falsch?

    1. Hi,

      Aber im Webmasterbereich bei http://www.GRATISLINKS.de/ hab ich mal einen Link zu folgendem Script gefunden, mit dem geht`s:

      Du solltest den Webmaster der Site auf seine fehlerhaften und problematischen Scripts aufmerksam machen.

      #!/usr/bin/perl

      Um Längen besser:

      #!/usr/bin/perl -w
      use strict;

      #   <!--#exec cgi="serverpath/to/the/directory/allinone.cgi?url=http://yahoo.com" -->

      http://httpd.apache.org/docs/mod/mod_include.html
      "exec cgi
       The CGI script is given the PATH_INFO and query string (QUERY_STRING) of the original request from the client; these cannot be specified in the URL path."

      &Parse_Form;

      Nope.

      use CGI ':standard'; # gerne auch ohne ':standard', dann ist es etwas umständlicher; s. perldoc CGI

      $url = $formdata{'url'};

      my $url = param('url');

      if ($url ne "") {

      if ($url ne '') {

      Oder gleich:

      if (param('url')) {

      $html = get $url;
      print "$html";

      *seufz*

      getprint $url;

      Oder zumindest:

      my $html = get $url;
      print $html;

      } else {
      }

      Argl.

      sub Parse_Form {

      Streichen. Farbe ist egal.

      print "Content-type: text/html\n\n";
        print "<P>Use Post or Get";

      Sowas hat da drin eh nichts verloren.

      $value =~s/<!--(.|\n)*-->//g;

      Und wo dieser Schwachfug erfunden wurde, würde mich auch mal interessieren.

      $formdata{$key} .= ", $value";

      Eieiei... die Zeichenfolge ', ' kann problemlos im Query (kodiert) auftauchen; hier wird sie aber als eindeutiges Trennzeichen benutzt. Kann nicht klappen.

      } else {
         $formdata{$key} = $value;

      *örgs* Der gesamte if-Teil könnte wenigstens durch ein effizientes join gelöst werden.

      Ich fasse also zusammen:

      #!/usr/bin/perl -w
      use strict;
      use LWP::Simple;
      use CGI ':standard';
      print header;
      getprint param('url');

      Die Kommentare am Anfang sind drei mal so lang.

      Cheatah