SSI - Wichtige Fragen
von Arne Pottharst
Im Zusammenhang mit Server Side Includes, kurz SSI genannt, tauchen
immer wieder typische Fragen auf. Hier die Antwort auf die häufigsten
Probleme, die Ihnen im Umgang mit SSI begegnen können:
Woran erkenne ich, dass ich SSI habe?
Die einfachste Methode ist: probieren Sie es aus. Dies tun Sie, indem Sie
eine Datei mit dem Namen test.shtml anlegen und den folgenden Befehl dort
hineinschreiben:
<!--#echo var="DATE_LOCAL" -->
Kopieren Sie die Datei dann auf Ihren Webserver und rufen Sie die Datei
auf. Sie sehen etwas, das wie im Beispiel unten aussieht? Dann wird SSI
unterstützt:
Sunday, 24-Oct-2004 12:26:45 CEST
Tip: Auch wenn es nicht jeder Provider angibt, wird SSI häufig
unterstützt. Wer beim Ausprobieren nicht weiter kommt, sollte einfach
freundlich dort nachfragen!
Welche Dateiendung haben SSI-Dateien?
Rein theoretisch ist es egal, welche Dateiendung man verwendet, diese kann
man in der Datei .htaccess einstellen, indem man ihr die Zeile
AddType text/x-server-parsed-html .html .abc
hinzufügt. Nun werden alle Dateien, die die Endung .html und .abc haben,
nach SSI-Anweisungen geparst, d.h. als SSI-Datei interpretiert. Standardmässig
ist .shtml, .sht oder .shtm eingestellt.
Achtung: Man sollte die SSI-Dateiendung wirklich nur dann ändern,
wenn man gute Gründe dafür hat beziehungsweise alle Dateien auch tatsächlich
parsen (nach SSI-Anweisungen durchsuchen) will, ansonsten kann es zu
Performance-Einbußen kommen.
Die if Abfrage funktioniert nicht!
Dies ist meist der Fall, wenn man den IIS (Internet Information Server von
Microsoft) verwendet, dieser unterstützt diesen Befehl nicht. Falls der
Apache-Server, der meist verwendet wird, die if Abfrage nicht unterstützt,
so ist eine Nachfrage beim Provider zu empfehlen.
flastmod, include, fsize funktionieren nicht!
Wenn man die Datei per file einbindet, kann es sein, dass es nicht
funktioniert, stattdessen virtual verwenden. Bei include kann es sein,
dass die gewünschte Datei nicht die richtige Endung hat, je nach Provider
bzw. Server sollte die Endung .shtml sein, .inc geht nicht immer.
Die exec Anweisung funktioniert nicht!
Dies ist ein spezielles Kommando, das erlaubt, Programme wie z.B.
CGI-Scripts aufzurufen. Da dies ein Sicherheitsrisiko darstellen kann,
haben einige Provider es abgestellt. In der Datei httpd.conf des
Apache-Webservers wird das CGI-Script mit der Direktive Options All ein-
beziehungsweise mit Options IncludesNoExec abgestellt.
Hilfe, hier geht gar nichts mehr!
Wenn sichergestellt ist, dass der Provider bzw. der Server SSI unterstützt
und trotzdem nichts geht, kann es folgende Gründe geben: Ist die
SSI-Syntax korrekt? Sie lautet folgendermaßen:
<!--#kommando argument="wert" -->
Wichtig ist hierbei das Leerzeichen vor dem --> . Es kann auch sein,
dass die Performance des Servers gewissermaßen in die Knie geht, da jede
einzelne SSI-Datei vom Server geparst wird, was eine große Belastung
darstellt. So kann es vereinzelt vorkommen, dass SSI-Kommandos nicht
ausgeführt werden. Alternativ sind hier statische HTML-Dateien oder
beispielsweise PHP-Dateien zu empfehlen.
Kann ich eine SSI-Datei in eine andere einbinden?
Antwort: Ja, das geht. Allerdings muss die eingebundene Datei die Endung
.shtml oder eine andere SSI-Endung haben, sonst werden die darin
enthaltenen SSI-Anweisungen nicht ausgeführt.
Wie binde ich eine Datei von einem anderen Server
ein?
SSI bedeutet "Server Side Includes" (zu deutsch in etwa
serverseitig Eingebundenes"), das bedeutet, dass sich alles auf einem
Server abspielt, daher ist es nicht möglich, eine Seite einzubinden, die
mit http:// oder etwas Ähnlichem beginnt.
Welchen Browser brauche ich?
SSI ist nicht vom Browser, der auf dem Computer des Benutzers installiert
ist, abhängig, sondern einzig und allein vom Webserver, auf dem die
SSI-Seiten abgelegt sind. Die Dateien werden dort so zusammengesetzt, wie
sie beim Browser ankommen, das heisst, sie werden wie statische
HTML-Seiten behandelt.
Welche Auswirkungen hat SSI auf Suchmaschinen?
Normalerweise sind gar keine zu befürchten, da die Seiten - wie im
Beispiel oben beschrieben - vom Server wie statische HTML-Seiten behandelt
werden. Es kann sein, dass sich ältere Suchmaschinen an der Endung .shtml
stören, neuere sollten keine Probleme haben. Und im Zweifelsfalle kann
man die Endung ändern, siehe oben.
Brauchen SSI-Seiten länger, bis sie angezeigt
werden?
Ja, es dauert geringfügig länger, da die Dateien erst vom Server geparst
werden müssen, aber mehr als Sekundenbruchteile sollten es nicht sein.
Andere Faktoren wie die Bandbreite spielen eher eine Rolle.
|