Hallo nochmal,
Ich hab's noch rasch getestet, und zwar auf
zwei verschiedenen Servern.
Beispiel 1:
index.php bindet per PHP-Befehl include() oder virtual()
das erste Include kopfzeile.shtml ein.
Dieses seinerseits bindet per SSI-Befehl ein oder mehrere
weitere Dateien ein, z.B. statische HTML-Dateien logo.html
und navigation.html
Gleiches Ergebnis auf beiden Servern:
include("kopfzeile.shtml")
=> Datei wird unveraendert eingebunden, d.h. SSI-Befehle
werden _nicht_ ausgefuehrt.
virtual("kopfzeile.shtml")
=> Datei wird geparst eingebunden, d.h. SSI-Befehle
_werden_ ausgefuehrt, inklusive Einbetten von
weiteren Dateien.
Beispiel 2:
index.shtml bindet per SSI-Befehl das erste Include
kopfzeile.php ein.
Dieses seinerseits bindet per PHP-Befehl weitere Dateien
ein, z.B. statische HTML-Dateien.
Resultat unabhaengig von der Schreibweise:
<!--#include virtual="kopfzeile.php" -->
oder
<!--#include file="kopfzeile.php" -->
Server bei kommerziellem Webhoster (beide Schreibweisen):
Datei wird geparst eingebunden, d.h. PHP-Befehle werden
ausgefuehrt, inklusive Einbetten von weiteren Dateien.
Uni-Server (bei beiden Schreibweisen): Fehlermeldung:
[an error occurred while processing this directive]
---
Wie gesagt, das "Mixen" der Technologien PHP und SSI,
indem man verschachtelte Includes verwendet, ist
nicht unbedingt zu empfehlen, weil es je nach
Server-Konfiguration nicht funktionieren kann.
Der Weg, als "aeusserste" Datei eine PHP-Datei zu haben,
und damit Seiten einzubinden, die SSI verwenden,
scheint etwas zuverlaessiger zu sein, als der
umgekehrte Weg (SSI-Datei bindet PHP-Dateien ein).
Mit PHP kann man notfalls auch die eigenen Ressourcen
ueber HTTP abholen und einbinden, was mit SSI
nicht moeglich ist.
http://httpd.apache.org/docs-2.0/mod/mod_include.html#includevirtual
"The URL cannot contain a scheme or hostname,
only a path and an optional query string."
mfg, Thomas