zum Inhalt springen

SHTML - Server Parsed Documents

Die Webserver der Universität zu Köln werden mit der Software Apache betrieben. Diese erlaubt, Dateien mit der Endung .shtml als "Server Parsed Documents" (auch Server Side Includes oder SHTML genannt) zu interpretieren (siehe Dokumentation von Apache). Bei den normalen Seiten (unter docs/) ist diese Möglichkeit aktiviert wie auch bei den persönlichen Seiten (unter /home//public_html), bei den Webprojekten muss sie gegebenenfalls noch aktiviert werden, dazu genügt eine E-Mail an Webmaster.

Als bessere Alternative zur Endung .shtml kann auch die Endung .html benutzt werden. Dann muss mit dem Unix-Befehl "chmod 754 Dateiname" das x-Bit des Eigentümers und der Gruppe gesetzt werden. Dies kann nach einem SSH-Login auf der Kommandozeile erfolgen oder mit den Funktionen der jeweils verwendeten Uploadsoftware (zum Beispiel WinSCP, Filezilla etc.).

Der Server sucht im Quelltext der shtml-Seiten nach Pseudokommentaren der Form

 

 <!--#Befehl Parameter=Wert Parameter=Wert... -->

 

und versucht, die Befehle auszuführen. Folgende Varianten gibt es:

 

 <!--#config errmsg="Meldung" sizefmt="fsize-Format" timefmt="Zeitformat" -->
<!--#echo var="Variable" -->
<!--#fsize file="/File relativ zu dem Dokument" -->
<!--#fsize virtual="URL desselben Servers" -->
<!--#flastmod file="/File relativ zu dem Dokument" -->
<!--#flastmod virtual="URL desselben Servers" -->
<!--#include file="File relativ zu dem Dokument"-->
<!--#include file="/File relativ zur Dokument-Wurzel-->
<!--#include virtual="URL desselben Servers" -->
<!--#printenv -->
<!--#set var="Variable" value="Wert" -->
<!--#if expr="Bedingung" -->
<!--#elif expr="Bedingung" -->
<!--#else -->
<!--#endif -->

 

Mehr dazu (Variablen, Bedingungen, Wirkungen,...) entnehmen Sie bitte zum Beispiel der Dokumentation bei SelfHTML.

Der Quelltext wird nicht nach außen gezeigt, der Browser zeigt nur den vom Server bearbeiteten Text. Dieser hat immer den Mime-Typ text/html. Beim Aktualisieren der Seite ist darauf zu achten, daß nicht vom "Quelltext" ausgegangen wird, welche der Browser zeigt, sondern von der originalen SHTML-Datei. Um Irrtümern vorzubeugen, sollte in der generierten Seite ein entsprechender Kommentar stehen.

Beispiele:

  • <!--#echo var="DATE_LOCAL" --> gibt Datum und Uhrzeit, zum Beispiel Monday, 24-Jan-2011 13:01:03 CET. Das Format kann mit dem Befehl config geändert werden.
  • <!--#echo var="LAST_MODIFIED" --> gibt Datum und Uhrzeit der letzten Änderung des umgebenden Dokuments.
    Ein Anwendungsbeispiel ist: <!--#config timefmt="%d.%m.%Y" --> Letzte &Auml;nderung: <!--#echo var="LAST_MODIFIED" -->

SHTML erlaubt per <!--#include virtual="" --> nur das Einbinden von Dateien, auf die der Webserver Zugriff hat, also unterhalb /vol/info/www/docs/ oder eines der cgi-Verzeichnisse. Insbesondere sind als keine URLs der Form http://... zuläsig.

Um eine Seite von einem externen Server in eine eigene SHTML-Seite einzubinden, benötigt man das folgende Perl-Skript:

 

#!/usr/bin/perl         # Pfad zum Perl-Compiler ggf. anpassen
use LWP::Simple;<br/>print "Content-Type: text/html\n\n";
my $adresse = "http://www.distinguish.de";          # Adresse der einzubindenden Seite
print get($adresse);<br/>

 

In der SHTML-Seite ist dann nur noch an der entsprechenden Stelle folgender include-Befehl einzusetzen: <!--#include virtual="/cgi-bin/include.pl" --> Wobei der Pfad zum Skript natürlich gegebenenfalls anzupassen ist. Wichtig: Die Verwendung dieses "Tricks" ist auf den Servern des RRZK nur dann möglich, wenn Ihre Seiten in einer CGI-fähigen Umgebung liegen, beispielsweise im Rahmen eines Webprojektes.

Links zu SHTML:

Kontakt
Bei Fragen und für eine individuelle Beratung wenden Sie sich bitte an den RRZK-Helpdesk