Richard Krause: SSI auf Windows-Apache

Hallo

Hab meine liebe Mühe, SSI auf meinem Apache-Webserver unter Windows zum Leben zu erwecken. Dies der relevante code (zusätzlich zum üblichen html-header) in meiner .shtml-Datei:

<!--#config timefmt="%d. %B %Y" -->
This page was last updated on <!--#echo var="LAST_MODIFIED" -->

Dies sind die vorgenommenen Konfigurationen in der httpd.conf-Datei:
    AddHandler server-parsed .shtml
    AddType text/html .shtml

Für DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs":
    <Directory />
       Options FollowSymLinks +Includes
       AllowOverride None
    </Directory>

Options Indexes FollowSymLinks MultiViews +Includes
    XBitHack on

Wenn ich die betreffende Datei im Browser aufrufe, wird seltsamerweise jedesmal ein neues Browser-Fenster geöffnet. Ich habe keine Einträge in den Log-Dateien des Webservers, weder im access.log noch im error.log.

Hat jemand dazu eine Lösung?

  1. hi,

    Dies sind die vorgenommenen Konfigurationen in der httpd.conf-Datei:
        AddHandler server-parsed .shtml
        AddType text/html .shtml

    Für DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs":
        <Directory />
           Options FollowSymLinks +Includes
           AllowOverride None
        </Directory>

    Der erste <Directory>-Container sollte (siehe die Kommentare !) außer
    "AllowOverride None" keine weitere Eintragung enthalten ("First, we configure the "default" to be a very restrictive set of permissions").
    Du kannst sofort darunter einen zweiten Container mit etwas mehr Eintragungen notieren:

    <Directory "C:/Program Files/Apache Group/Apache/htdocs">
            Options FollowSymLinks +Includes
            AllowOverride None
         </Directory>

    Options Indexes FollowSymLinks MultiViews +Includes
        XBitHack on

    Wo stehen diese Angaben ?

    Wenn ich die betreffende Datei im Browser aufrufe, wird seltsamerweise jedesmal ein neues Browser-Fenster geöffnet.

    Kann ich nicht bestätigen. Habe dein Beispiel eben mal rasch exakt hier herauskopiert und in eine shtml eingebaut. Das "Update"-Datum wird exakt angezeigt.
    Was hast du denn außerdem noch in deiner shtml drinstehen ?

    Christoph S.

    1. Salü Christoph

      Danke für die Hinweise.

      Ich hab den "+Includes"-Eintrag bei der restriktiven Standard-Konfiguration gelöscht.Der Eintrag, nach dem Du gefragt hast befindet sich bei der Konfiguration des "DocumentRoot"-Verzeichnisses (hab ich den "XBitHack on"-Eintrag gelöscht, da nicht relevant für Windows). Dort befindet sich ja auch der relevante Includes-Eintrag.

      Ich hatte die Datei aus dem Ordner "cgi-bin" aufgerufen und übersehen, dass dafür eine andere Konfiguration gilt als für das DocumentRoot-Verzeichnis. Wenn die Datei am richtigen Ort plaziert wird, funktioniert nun der SSI-Aufruf.

      Grüsse
      Richard

      1. Noch ein Nachtrag: wenn Dateien im Browser lokal (z.B. C:\Program Files\Apache Group\Apache\htdocs\test.shtml) statt über die http-Adresse (z.B. http://129.132.128.47/test.shtml) aufgerufen werden, funktioniert SSI nicht. Dies war in erster Linie mein Problem, hab es gestern Abend per Zufall 'rausgefunden, als ich in einem Bücherladen im SELFHTML-Buch schmökerte. Dieser Hinweis findet sich im Web eher selten...

        1. Noch ein Nachtrag: wenn Dateien im Browser lokal (z.B. C:\Program Files\Apache Group\Apache\htdocs\test.shtml) statt über die http-Adresse (z.B. http://129.132.128.47/test.shtml) aufgerufen werden, funktioniert SSI nicht. Dies war in erster Linie mein Problem, hab es gestern Abend per Zufall 'rausgefunden, als ich in einem Bücherladen im SELFHTML-Buch schmökerte. Dieser Hinweis findet sich im Web eher selten...

          Er kann aber eminent wichtig sein. Bloß spielt das "im Web" eben keine Rolle, weil man davon ausgehen kann, daß eh nur der "im Web" ist, der über einen Webserver hineingeleitet wurde.

          Christoph S.

        2. Hi Richard,

          Noch ein Nachtrag:
          wenn Dateien im Browser lokal (z.B. C:\Program Files
          \Apache Group\Apache\htdocs\test.shtml) statt über
          die http-Adresse (z.B.
          http://129.132.128.47/test.shtml) aufgerufen werden,
          funktioniert SSI nicht.

          wie sollte es auch?

          Woher soll der Webserver (= http-daemon! Nicht "Hardware"!) auch mitbekommen, was Dein Browser und Deine Festplatte ohne ihn gemeinsam veranstalten?

          Viele Grüße
                Michael