Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
FAQ
Know How
Testberichte
Hardware-DB
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Tutorials

SSI Tutorial

Server Side Includes, kurz SSI, bieten dem Webdesigner einige interessante Möglichkeiten. Da SSI vom Webserver ausgeführt wird, ist diese Technik vollkommen unabhängig vom Browser des Besuchers.
Mirko Kulpa, 07.05.2005

SSI - Was ist das?

Server Side Includes (SSI) sind eine Art Kommandos, die in HTML-Dateien genutzt werden können. Mit SSI können Teile die auf allen Seiten einer Site identisch sind, in eine extra Datei ausgelagert werden. Zum Beispiel die Navigation, Banner, Google AdSense oder der Footer. Da die SSI-Kommandos vom Webserver abgearbeitet werden, bekommt jeder Besucher der Seite den richtigen Inhalt angezeigt. Anders als bei Java Script oder ActiveX, hat der Browser keinen Einfluss auf die Darstellung. Egal ob Internet Explorer, Mozilla oder Lynx - alle bekommen den gleichen HTML-Code ausgeliefert. Sogar der Googlebot und andere Spider "sehen" den richtigen Inhalt der Seiten.

Vorbereitungen

Damit SSI funktioniert, muss das Apache-Modul mod_include geladen sein. Für die Version 1.3 des Webservers wird dazu folgender Eintrag in der httpd.conf benötigt:

LoadModule includes_module /usr/lib/apache/1.3/mod_include.so

Eventuell muss der Pfad angepasst werden. Oftmals ist der Apache so konfiguriert, dass nur Dateien mit der Erweiterung .shtml nach SSI durchsucht werden. Damit SSI auch in .html-Dateien funktioniert werden die folgenden Einstellungen benötigt:

Options +Includes
AddType text/html .html
AddHandler server-parsed .html

Diese Einstellungen können direkt in der httpd.conf oder in der Datei .htaccess erfolgen. Damit das "Options +Includes" aus der .htaccess funktioniert, muss für das betreffende Directory allerdings ein "AllowOverride Options" in der httpd.conf stehen.

Eine weitere Möglichkeit SSI zu aktivieren ist die "XBitHack Directive". Falls Sie ein Webhosting-Angebot nutzen, fragen Sie den Provider nach den notwendigen Einstellungen für Server Side Includes.

Ein erster Test

Server Side Include werden als HTML-Kommentare notiert, zum Beispiel so: <!--#echo var="DATE_LOCAL" --> Für einen ersten Test laden Sie die folgende HTML-Datei auf den Webserver:

<html>
  <head>
    <title>SSI Test 1</title>
  </head>
  <body>
  
    <h1>SSI Test 1</h1>

    <p>
    Das aktuelle Datum ist: <!--#echo var="DATE_LOCAL" -->
    </p>

  </body>
</html>

Beim Aufruf der Datei im Browser sollte das aktuelle Datum angezeigt werden. Anderenfalls überprüfen Sie bitte die Konfiguration des Webservers. Die Ausschrift [an error occurred while processing this directive] deutet auf Fehler in der SSI-Notation oder eingebunden CGI-Scripten hin. Hier hilft ein Blick in die Logfiles des Apache.

Änderungsdatum einer Datei anzeigen

Um das Datum der letzen Aktualisierung einer Datei anzuzeigen, nutzen Sie folgenden Code:

zuletzt aktualisiert am:
<!--#config timefmt="%d.%m.%Y" -->
<!--#echo var="LAST_MODIFIED" -->

Über config timefmt kann das Datumsformat eingestellt werden. Einige der möglichen Parameter sind:

%d = Tag 2-stellig, z.B. 05
%e = Tag, z.B. 5
%H = Uhrzeit 24-stündig, z.B. 14
%m = Monat, z.B. 05
%M = Minuten, z.B. 08
%S = Sekunden, z.B. 02
%U = Kalenderwoche, z.B. 44
%y = Jahr 2-stellig, z.B. 05
%Y = Jahr 4-stellig, z.B. 2005

Einfügen einer Datei

Per SSI kann der Inhalt einer Datei in eine HTML-Datei eingebunden werden. Diese Datei kann ein CGI-Script oder eine statische Textdatei sein.

<html>
  <head>
    <title>SSI Test 2</title>
  </head>
  <body>
  
    <h1>SSI Test 2</h1>

    <p>
    Dateiinhalt Datei1.html
    </p>

    <!--#include virtual="/test/footer.html" -->

  </body>
</html>

Die Datei "/test/footer.html" kann auch wieder SSI enthalten:

<p>
Diese Datei wurde am 
<!--#config timefmt="%d.%m.%Y" -->
<!--#echo var="LAST_MODIFIED" -->
zuletzt geändert.
</p>

Mit dieser Technik können Sie in jede HTML-Datei zum Beispiel eine Navigation, eine Fußzeile, einen Counter oder ein Banner einblenden. Bei einer Änderung, müssen Sie nur die per include virtual eingefügte Datei aktualisieren. Die eingefügte Datei muss auf dem selben Webserver liegen. Am besten geben Sie immer die absolute URL (beginnend mit "/") an. Die URL darf keinen Hostnamen enthalten.

Variablen

Sie können mit SSI auch Variablen nutzen. Mit:

<!--#set var = "titel" value = "SSI Tutorial" -->

weisen Sie der Variablen "titel" den Wert "SSI Tutorial" zu. Später können Sie mit SSI auf den Inhalt der Variablen zugreifen.

<p>
Der Titel dieser Datei lautet
<!--#echo var="titel" -->
</p>

Ist die Variable nicht belegt, erscheint ein (none) im Browser. Der Zugriff auf Variablen ist auch in eingefügten Dateien möglich. Sie können also Variablen setzen und später in einem eingefügten Footer auf diese zurückgreifen.

Bedingte Ausführung - IF, ELSE, ENDIF

SSI erlaubt es dem Webmaster, einfache Kontrollstrukturen innerhalb von HTML zu nutzen. Mit einem "if" kann zum Beispiel geprüft werden, ob eine Variable gesetzt ist.

<p>
<!--#if expr="$titel" -->
Der Titel dieser Datei lautet <!--#echo var="titel" -->
<!--#else -->
Diese Datei hat keinen Titel.
<!--#endif -->
</p>

Damit wird verhindert, dass bei leerem Titel ein (none) angezeigt wird. Die vollständige Syntax für das "if" sieht so aus:

<!--#if expr="test_condition" -->
<!--#elif expr="test_condition" -->
<!--#else -->
<!--#endif -->

Die "test_condition" kann wie folgt aufgebaut sein:

string
    wahr, wenn der String niht leer ist

string1 = string2
string1 != string2
string1 < string2
string1 <= string2
string1 > string2
string1 >= string2

! test_condition
    wahr, wenn die Bedingung nicht erfüllt ist

test_condition1 && test_condition2
   UND-Vernküpfung
   
test_condition1 || test_condition2
   ODER-Vernküpfung

Weitere Möglichkeiten

Server Side Includes bieten noch weitere Möglichkeiten zur Gestaltung von HTML-Dateien. Zum Beispiel kann die Größe einer Datei angezeigt werden, auf Umgebungsvariablen zugegriffen werden oder ein Shell-Kommando ausgeführt werden. Informationen liefert die Dokumentation zum Apache.

Es gibt auch einige Einschränkungen. So kann die Ausgabe von CGI/Perl-Scripten kein SSI enthalten, da die Ausgabe von Scripten nicht nach SSI geparst wird.

Weiterführende Informationen

Weiterführende Informationen finden Sie unter folgenden Links:

 

 
© 2004-2023, network lab - we make your net work - Netzwerkforum
aktualisiert am 22.03.2012