Sven Rautenberg: ASP per SSI in SHTML inkludiert -> nur Sourcecode wird angezeigt

Beitrag lesen

Moin!

Ich habe eine kleine ASP-Seite programmiert und wollte diese mit SSI (#include virtual) in eine SHTML-Seite einbinden, es wird aber nur der Quelltext hineinkopiert - die ASP also nicht durchgeführt.

SSI kopiert die angegebene Datei Byte für Byte in den Ausgabedatenstrom - ausgeführt wird da nichts. Du kriegst also den Quellcode angezeigt (sofern der mit HTML-Mitteln irgendwie darstellbar ist).

Abgesehen davon: Du kannst keine komplette HTML-Seite (auch wenn sie mit ASP generiert wird) mit SSI irgendwo einfügen, wenn du nicht ansonsten keine weitere Ausgabe machst. Ansonsten hast du doppelte Tags in der Seite, die definitiv böse sind.

Wenn die SHTML-Datei einzig aus der SSI-Einbindung besteht, und sonst nichts macht, dann hast du irgendein Prinzip nicht so ganz verstanden.

Die SHTML möchte ich nicht in ASP umbenennen damit ich nicht bei einem späteren Umzug auf z.B. Linux mit PHP alle Verweise ausbessern muss.

Hast du wirklich eine (z.B.) index.shtml als Linkziel und index.asp als Seitengenerator (ersatzweise später auch index.php), und verlinkst nur die shtml-Datei?

Dann solltest du lieber den Server für dich arbeiten lassen.

Drei Ideen:

1.) Mach in der index.shtml ein Meta-Refresh auf die ASP-Datei.

2.) Benutze Content-Negotiation und Multiviews. Du verlinkst nur auf "/index", und der Server sucht selbständig nach Dateien, die mit "index" anfangen, aber beliebige Dateiendungen haben. Dann ist es egal, ob die Index-Datei auf .html, .shtml, .asp oder .php endet.

3.) Benutze URL-Rewriting, um alle Zugriffe auf *.html-Dateien umzubiegen auf *.asp (und später auf *.php) - eventuell angereichert um die Option, dieses nur zu tun, wenn keine *.html-Datei vorhanden ist.

Ich denke, dein Argument mit dem Linkumbiegen bei evtl. späterer Umstellung wiegt nicht ganz so schwer: Wenn du auf PHP umstellst, mußt du ohnehin fast alles neuprogrammieren (ASP ist nicht kompatibel). Einzig Links von externen Seiten würden ins Leere laufen. Das kann man aber mit Methode 2 oder 3 sehr gut verhindern, weil die URL dort einfach einen Sinnzusammenhang besitzt, aber nicht angibt, welche serverseitige Technik dahintersteht, um HTML zu erzeugen.

- Sven Rautenberg