A. Weber: Server Side Includes

Hallo!
Ich habe in mehreren HTML-Seiten völlig identische Statements der folgenden Art.

<!--#include virtual="/mod1.inc" -->
<!--#include virtual="/mod2.inc" -->
     .....
<!--#include virtual="/modn.inc" -->
     .....
<!--#if  expr='"$REDIRECT_STATUS" = /401/' -->
            blabla1
      <!--#elif expr='"$REDIRECT_STATUS" = /403/' -->
            blabla2
      <!--#elif expr='"$REDIRECT_STATUS" = /404/' -->
            blabla3
      <!--#elif expr='"$REDIRECT_STATUS" = /500/' -->
            .....
<!--#endif -->

Diese würde ich gerne auslagern und in die einzelnen Seiten einfügen.
Über SSI geht dies ja leider nicht (rekursiver ssi-Aufruf?).
Gibt es eine andere Möglichkeit, die Zeilen ins Programm einzufügen, so dass die SSI-Anweisungen durchgeführt werden?
Schönen Gruß
Webbi

  1. @@A. Weber:

    Über SSI geht dies ja leider nicht (rekursiver ssi-Aufruf?).

    Doch, geht.

    Du musst lediglich dafür sorgen, dass das Include, das weitere enthält, auch durch den SSI-Parser geschickt wird, also die Endung 'shtml' hat (oder eine andere, wobei du den Server dann so konfigurierst, dass er auch Dateien mit jener Endung nach SSI parst).

    Bsp: test.shtml:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="und" lang="und">  
     <head>  
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
      <title>TEST</title>  
     </head>  
     <body>  
      <!--#include virtual="foo.shtml" -->  
     </body>  
    </html>
    

    foo.shtml:
    <!--#include virtual="bar" -->

    bar:
    Lorem ipsum dolor sit amet.

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. Danke,
      es funktioniert für alle Seiten einer Domain.
      Jetzt wollte ich das serverübergreifend anwenden aber da ist mir  aufgefallen:
      SSI bedeutet ja, dass nur Komponenten des aktuellen Server "included" werden können.

      Jetzt die Masterfrage:

      Verwendung eines gemeinsamen Teils auf mehreren Servern.

      Beispiel:
      foo.shtml liegt in example.com/dir/
      test.shtml liegt
      1. in example.com
      und
      2. in example.test
      Im ersten Fall klappt ja das include.
      Kann ich foo.shtml im 2. Fall über eine andere Methode holen und einfügen (Leseberechtigung vorausgesetzt)?

      1. @@A.Weber:

        SSI bedeutet ja, dass nur Komponenten des aktuellen Server "included" werden können.

        Über dessen Dateisystem, ja.

        Das bedeutet: Sind zwei Domains auf demselben Server gehostet, kann dasselbe Include bei Webseiten von beiden Domains verwendet werden. Ein Include von einem anderen Server (also nicht übers Dateisystem, sondern  über HTTP o.ä.) ist bei SSI AFAIK nicht möglich.

        Live long and prosper,
        Gunnar

        --
        „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
        1. Hallo,
          mit SSI kann ich mit DOCUMENT_NAME den Dokumentennamen erhalten.
          Kann ich diesen auch ohne das ".shtml" erhalten?
          Gruß
          Webbi