Artikel weiterleiten
Artikel editieren
Druckansicht
FAQ #419

So setzen Sie Server Side Includes (SSI) ein

So setzen Sie Server Side Includes (SSI) ein

Wichtige SSI-Kommandos im Überblick

Kann ich SSI-Kommandos auch auf meiner Startseite einsetzen?

Ich habe SSI-Kommandos eingefügt, aber sie werden nicht ausgeführt. Woran kann das liegen?

 

 

So setzen Sie Server Side Includes (SSI) ein

 

Server Side Includes (SSI) sind bereits ab dem Paket Hosting Starter (ehemals PowerWeb Starter; ältere Pakete: ab BasicWeb XL) implementiert.

 

Sie erleichtern die Arbeit mit Internet-Seiten. In dieser Anleitung erfahren Sie, wie man SSIs gezielt einsetzen kann:

 

Sie brauchen:

  • einen HTML-Editor
  • praktisch ist außerdem ein Texteditor z.B. das mit Windows mitgelieferte Notepad oder Wordpad
  • ein FTP-Programm zum Hochladen der Seiten bzw. alternativ ein HTML-Editor mit FTP-Funktion
  • einen Browser zur Kontrolle

 

Nützliches Hintergrundwissen:

Server Side Includes (SSI) sind so etwas wie Platzhalter, in die bei Abfrage der HTML-Datei vom Server entsprechende Inhalte eingefügt werden. Ein einfaches Beispiel ist ein SSI-Befehl für das aktuelle Datum und Uhrzeit. In der HTML-Datei steht dann zum Beispiel:

 

"Wir haben heute den"

 

 

Für den Betrachter setzt der Server jedoch jeweils das aktuelle Datum und die Uhrzeit ein, so dass dieser zum Beispiel nur sieht: "Wir haben heute den 13.04.2010". Statt des Datums können auch andere Daten aufgerufen werden, wie beispielsweise die Dateigröße eines Bildes.

 

Eine besonders interessante Möglichkeit von SSIs ist, dass damit in eine Internet-Seite eine beliebige HTML-Datei eingefügt werden kann. Mit dieser Methode kann man zum Beispiel alle Fußzeilen automatisch setzen lassen und alle anderen Elemente, die auf jeder Seite identisch sein sollen. Langfristig erspart das einigen Wartungsaufwand, da nicht mehr in jeder Datei einzeln geändert werden muss, sondern nur noch in einer einzigen, nämlich der, die automatisch eingefügt wird.

 

Der Server führt die SSI-Kommandos direkt bei Aufruf der Seite aus. Der Betrachter erhält eine HTML-Datei, in der das SSI-Kommando auch im Quellcode nicht mehr sichtbar ist. SSI-Kommandos unterscheiden sich in dieser Hinsicht zum Beispiel von Javascript-Kommandos, die in der Regel für den Betrachter im HTML-Quellcode sichtbar bleiben.

 

Zum korrekten Aufruf einer SSI-Seite muss eine Verbindung zu einem Server bestehen, der SSIs ausführen kann, wie zum Beispiel unser Server. Beim Direktaufruf von der Festplatte werden die SSI-Kommandos dementsprechend nicht angezeigt, da der Browser selbst sie nicht interpretieren kann.

 

 

Um SSIs verwenden zu können, müssen Sie nur an die gewünschte Stelle in Ihrer Internet-Seite das entsprechende SSI-Kommando einfügen. Dies könnte zum Beispiel für das automatische Einfügen von Datum und Uhrzeit so aussehen:

 

 

Das SSI-Kommando ist in Rot hervorgehoben. Sie können Ihre Internet-Seite selbstverständlich auch in einem grafischen HTML-Editor anlegen und das SSI-Kommando im HTML-Modus (sofern vorhanden) oder anschließend in einem Texteditor einfügen. Die Datei speichern Sie schließlich nicht mit der Endung .html sondern .shtml, damit der Server auf Anhieb erkennt, dass hier SSI-Platzhalter ersetzt werden müssen. Laden Sie die Internet-Seite mit dem SSI-Kommando anschließend wie normale Internet-Seiten per FTP auf unseren Server hoch.

 

Für Ihre Betrachter wird dann bei Aufruf der Datei statt des SSI-Kommandos eine aktuelle Zeit- und Datumsangabe eingeblendet:

 

 

Wichtige SSI-Kommandos im Überblick


Das Einfügen anderer SSI-Kommandos funktioniert nach demselben Schema wie gerade für gezeigt. Ein SSI-Befehl ist dabei in der Regel nach folgendem Schema aufgebaut:

 
 

Beachten Sie bitte jeweils das Leerzeichen vor dem abschließenden "-->".

 

echo

erzeugt verschiedene Zeitangaben sowie Dateinamen und Pfadnamen. Folgende Echo-Variationen sind verfügbar:
 
 

zeigt das aktuelle Datum und die Uhrzeit des Server-Standorts.

Beispiel: Tuesday, 24-Nov-2004 16:12:57 MET

 
 

zeigt den Dateinamen des Dokuments, in dem das SSI-Kommando enthalten ist.

Beispiel: ssi_datei.shtml

 
 

zeigt den Dateinamen und Pfad des Dokuments, in dem das SSI-Kommando enthalten ist. Bitte beachten Sie, daß es wirklich URI heißt und hier kein Tippfehler von URL vorliegt.

Beispiel: /dokumente/ssi_datei.shtml

 

 

zeigt das Datum, zu dem das Dokument zuletzt geändert worden ist.

Beispiel: Tuesday, 24-Nov-2004 16:24:57 MET

 

Darüber hinaus können als Variablen auch die CGI-Umgebungsvariablen (Übersicht z.B. bei https://wiki.selfhtml.org/wiki/Webserver/SSI eingesetzt werden.


fsize

zeigt die Größe eines Bildes:
 
 
Beispiel: 12k


flastmod

 
 
zeigt, wann eine Datei zuletzt geändert wurde.

Beispiel: Tuesday, 24-Nov-2009 16:24:57 MET

config

 

Mit "config" können Sie die von anderen SSI-Kommandos erzeugten Angaben, z.B. die Zeiten von "echo" oder die Dateigröße von "fsize", in einem anderen Format ausgeben lassen. Folgende Einstellungen sind verfügbar:

 

Für Zeitangaben

Für "Wert" können Sie folgende Angaben machen:

 

 

%A Der Wochentag wird ausgeschrieben.

 

%a Der Wochentag wird in Kurzform angegeben

 

%B Der Monat wird ausgeschrieben.

 

%b Der Monat wird in Kurzform angegeben.

 

%m Der Monat wird als Zahl geschrieben.

 

%e Der Tag im Monat wird grundsätzlich als zweistellige Ziffer angegeben, also z. B. auch 03.

 

%H Die Uhrzeit wird 24-stündig angegeben.

 

%I Die Uhrzeit wird 12-stündig angegeben. Sinnvoll ist der Zusatz %p, der "a.m." für Vormittag bzw. "p.m." für Nachmittag einfügt.

 

%Y Das Jahr wird vierstellig angegeben, z.B. 2010.

 

%y Das Jahr wird zweistellig angegeben, z.B. 10

 

%M Die Minuten werden angegeben %S Die Sekunden werden angegeben

 

%U Die Kalenderwoche wird angegeben

 

%Z Die Zeitzone wird angegeben, z.B. Greenwich Time (GMT)

 

Ein kompletter SSI-Befehl sieht zum Beispiel so aus:

 
 
Dem Betrachter wird dann zum Beispiel angezeigt:
Tuesday, May 24, 2010

Für die Angabe der Dateigröße
sizefmt="[Wert]"

Für "Wert" können Sie folgende Angaben machen:
abbrev (Größe in kbyte)
bytes (Größe in byte)

Ein kompletter SSI-Befehl sieht zum Beispiel so aus:
 
 
Dem Betrachter wird dann zum Beispiel angezeigt:
25kb
 

include

 
 

fügt eine andere Datei, z.B. ein Bild oder einen Text, in eine HTML-Seite ein:

 

Wenn Sie eine Datei einfügen lassen, die in einem anderen Ordner als die SHTML-Datei liegt, in die eingefügt werden soll, verwenden Sie stattdessen "#include virtual":

 

 

Die Pfadangabe erfolgt dabei nach dem selben Schema wie bei Verweisen (Links). Sie geben jeweils den Pfad relativ vom SHTML-Dokument zum Dokument, das einfügt werden soll, an. Absolute URLs im Stil von http://www.... können nicht verwendet werden.

 

exec

 

führt ein CGI-Script aus, sobald die SHTML-Seite geladen wird.

 

 
 

Die Pfadangabe erfolgt dabei nach demselben Schema wie bei Verweisen (Links). In der Regel verweisen Sie zum lokalen CGI-Verzeichnis. Dieses heißt auf unserem Server "cgi-bin" und muss wie im obigen Beispiel angegeben werden. Bei den CGIs sollte es sich um Programme handeln, die Text auf die Standardausgabe schreiben. Dieser wird dann vom "exec"-Kommando in das SHTML-Dokument geschrieben.

 

Eine Anleitung zu SSIs finden Sie in Stefan Münz HTML-Kompendium "SelfHTML".

 


 

Sonderfall Startseite
Bitte beachten Sie: Auf der Startseite Ihrer Internet-Präsenz können standardmäßig keine SSI-Kommandos verwendet werden. Die Seite, die automatisch bei Eingabe Ihres Domainnamens aufgerufen wird, muss nämlich Datei index.htm oder Datei index.html heißen. Sie darf nicht die Endung .shtml haben. Deshalb können keine SSI-Kommandos auf dieser Seite verwendet werden, da der Server nicht erkennt, dass er diese ausführen muss, wenn die Seite keine .shtml-Endung hat.
Es gibt jedoch einen alternativen Weg.
 

Kann ich SSI-Kommandos auch auf meiner Startseite einsetzen?

 

Die Seite, die automatisch bei der Eingabe Ihres Domainnamens aufgerufen wird, muss index.html, index.htm oder index.php heißen, da dies serverseitig so konfiguriert ist.

 

Die genaue Reihenfolge entnehmen Sie bitte dem Artikel:

Warum erhalte ich bei der Eingabe meines Domainnamens eine Fehlermeldung oder die STRATO-Defaultseite?

 

Wenn Sie andere Dateien/Dateiendungen als Startseite verwenden möchten (z.B.: .shtml um SSI-Befehle auf der Startseite verwenden zu können) werden diese standardmäßig nicht gefunden. Es gibt aber eine Möglichkeit, dies mittels einer .htaccess-Datei zu ändern.

 

Öffnen Sie einen Text-Editor, z.B. Windows-Editor (in der Regel unter START > Programme > Zubehör > Editor zu finden) und legen ein neues Dokument an. Die Datei .htaccess muss folgenden Inhalt haben:

 

DirectoryIndex index.shtml index.html index.htm

 

Achten Sie beim Speichern der Datei im Editor bitte darauf, als "Dateityp" Alle Dateien auszuwählen. Speichern Sie die Datei dann unter dem Namen .htaccess auf Ihrer Festplatte.

 

Wichtig: Beachten Sie bitte den Punkt "." vor dem Dateinamen. Sofern dieser Punkt fehlt, wird Ihre .htaccess-Datei nicht vom Server erkannt und verarbeitet.

 

Webhosting: SSI einsetzen-1.png

 

Laden Sie die Datei dann bitte per FTP in das Haupt-Verzeichnis Ihrer Website. Im Beispiel wird dann zuerst überprüft, ob die Datei index.shtml existiert. Ist das der Fall, wird diese im Browser aufgerufen und die von Ihnen eingebundenen SSI-Befehle werden ausgeführt.

 

 

Anmerkung: SSI (Server Side Includes) können Sie ab dem Paket PowerWeb Starter (ältere Pakete: ab BasicWeb XL) nutzen.

 

Ich habe SSI-Kommandos eingefügt, aber sie werden nicht ausgeführt. Woran kann das liegen?

 

Eine mögliche Fehlerquelle ist, dass Sie die Datei nicht mit der Dateiendung .shtml benannt haben. Unser Server erkennt dann nicht, dass sich darin SSI-Kommandos verbergen und kann diese folglich auch nicht ausführen.

 

Bitte beachten Sie, dass SSI (Server Side Includes) ab dem PowerWeb- XE bzw. PowerWeb Basic Paket implementiert sind.

 

Ich habe SSI-Kommandos eingefügt, aber sie werden nicht ausgeführt. Woran kann das liegen?


Eine mögliche Fehlerquelle ist, dass Sie die Datei nicht mit der Dateiendung .shtml benannt haben. Unser Server erkennt dann nicht, dass sich darin SSI-Kommandos verbergen und kann diese folglich auch nicht ausführen.
Bitte beachten Sie, dass SSI (Server Side Includes) ab dem PowerWeb- XE bzw. PowerWeb Basic Paket implementiert sind.

×