Matze: HTML-Datei parsen

Hallo,

bei einem Auftrag für eine Homepage habe ich lauter nette html-Dateien.
Einzig das Kontaktformular benutzt php.
Jetzt stört mich die Dateiendung ein wenig und ich würde die Datei gern in eine html umbenennen und trotzdem parsen lassen.

Folgender Code in der .htaccess sollte das erreichen:

  
<Files kontakt.html>  
AddType application/x-httpd-php .html  
</Files>  

Wenn ich die Datei jetzt aber aufrufe, parst sie der Server nicht und der Browser will sie herunter laden.
Auf dem Server ist PHP4.4.7 installiert.

Könnte mir bitte jemand sagen wo mein Fehler liegt?

Grüße, Matze

  1. Lieber Matze,

    Könnte mir bitte jemand sagen wo mein Fehler liegt?

    ich würde nicht den Server dahingehend umstellen, dass er HTML-Dateien mit dem MIME-Typ für PHP-Scripte ausliefert, da das den Browser nur anweist, dass da eine Datei kommt, die er nicht selbst verarbeiten kann. Daher der Download-Dialog.

    Du möchtest vielmehr, dass beim Aufruf einer ganz bestimmten HTML-Datei ein PHP-Script ausgeführt wird. Das ist eine interne "Umleitung", die man auch URL-Rewriting nennt. Beim Apache Webserver erledigt das ein Modul namens mod_rewrite, welches Du in der .htaccess konfigurierst.

    Reicht das für genügend Stichworte, um im Archiv danach zu suchen?

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo,

      Reicht das für genügend Stichworte, um im Archiv danach zu suchen?

      Natürlich, auch wenn ich das Archiv dafür nicht bemühen muss,
      es sei denn du meintest mein Hirn damit ;)

      Schade, auf mod_rewrite bin ich auch schon gekommen aber das steht mir leider nicht zur Verfügung.
      Ansonsten bin ich damit vertraut und es wäre kein Problem.
      So bleibt es also bei der einen php-Datei.

      Danke und Grüße, Matze

    2. Hallo,

      Könnte mir bitte jemand sagen wo mein Fehler liegt?

      ich würde nicht den Server dahingehend umstellen, dass er HTML-Dateien mit dem MIME-Typ für PHP-Scripte ausliefert, da das den Browser nur anweist, dass da eine Datei kommt, die er nicht selbst verarbeiten kann. Daher der Download-Dialog.

      Nein. Das, was Matze gemacht hat, war im Prinzip schon richtig so. Denn application/x-httpd-php sagt dem Apache (in der Default-Konfiguration zumindest, wenn PHP installiert ist), dass er das PHP-Script durch den PHP-Interpreter jagen soll. Nur, wenn PHP nicht installiert oder anders konfiguriert ist, wird der MIME-Type direkt an den Browser weitergeleitet.

      Schau Dir mal die Installationsanleitung von PHP im Handbuch an. Dort siehst Du genau den gleichen MIME-Type auch in Verbindung mit AddType für '.php' als Erweiterung.

      Du möchtest vielmehr, dass beim Aufruf einer ganz bestimmten HTML-Datei ein PHP-Script ausgeführt wird. Das ist eine interne "Umleitung", die man auch URL-Rewriting nennt. Beim Apache Webserver erledigt das ein Modul namens mod_rewrite, welches Du in der .htaccess konfigurierst.

      mod_rewrite würde hier zwar auch funktionieren, so wie Du's beschreibst, ist aber hier unnötig, der Lösungsansatz von Matze war im Prinzip schon in Ordnung.

      Viele Grüße,
      Christian

  2. Hallo,

    Jetzt stört mich die Dateiendung ein wenig und ich würde die Datei gern in eine html umbenennen und trotzdem parsen lassen.
    [...]
    AddType application/x-httpd-php .html
    [...]
    Wenn ich die Datei jetzt aber aufrufe, parst sie der Server nicht und der Browser will sie herunter laden.
    Auf dem Server ist PHP4.4.7 installiert.

    Offensichtlich ist auf dem Server PHP nicht unter dem MIME-Type application/x-httpd-php verfügbar (wie normalerweise der Fall). Um .html-Dateien als PHP parsen zu lassen, müsstest Du erst herausfinden, was bei der Serverkonfiguration richtig ist. Also: Frag den Administrator.

    Viele Grüße,
    Christian

    1. Hallo,

      Offensichtlich ist auf dem Server PHP nicht unter dem MIME-Type application/x-httpd-php verfügbar (wie normalerweise der Fall). Um .html-Dateien als PHP parsen zu lassen, müsstest Du erst herausfinden, was bei der Serverkonfiguration richtig ist. Also: Frag den Administrator.

      Die Domain des Kunden läuft über Strato. Vielleicht hat damit schon jemand Erfahrung?
      Steht die Angabe denn auch in der phpinfo()? Dann wär es ja kein Problem herauszufinden.

      Danke und Grüße, Matze

      1. Hallo Matze,

        Offensichtlich ist auf dem Server PHP nicht unter dem MIME-Type application/x-httpd-php verfügbar (wie normalerweise der Fall). Um .html-Dateien als PHP parsen zu lassen, müsstest Du erst herausfinden, was bei der Serverkonfiguration richtig ist. Also: Frag den Administrator.

        Die Domain des Kunden läuft über Strato. Vielleicht hat damit schon jemand Erfahrung?
        Steht die Angabe denn auch in der phpinfo()? Dann wär es ja kein Problem herauszufinden.

        In phpinfo() selbst steht's in der Regel nicht drin.

        Wenn ich allerdings die Häufig gestellten Fragen bei Strato richtig verstehe, kannst Du auf Verzeichnis-Ebene einstellen, welche PHP-Version für welche Endungen verwendet werden soll. Ich weiß nicht, wie das bei denen genau funktioniert, allerdings könnte das über automatisch angelegte .htaccess-Dateien sein. Sprich: Stelle mal für ein Unterverzeichnis die PHP-Einstellungen um und schau Dich in dem Verzeichnis dann mal nach einer automatisch erzeugten .htaccess um - vielleicht wirst Du aus dieser dann ja schlau, was Du nehmen musst (und wenn ja, wäre es nicht schlecht, Deine Erkenntnisse hier für die Zukunft wiederzugeben ;-)).

        Viele Grüße,
        Christian

        1. Hellihello,

          Strato lässt Dich zwar zwischen zwei PHP-Versionen unterscheiden, aber nur auf die Endungen php* (viell. noch phtml?)- NICHT(!) aber - ich habe aus gegebenem Anlass dort bereits vor Wochen nachgefragt - auf die Endung *.html - zumindest bei ein Premiumpaket, von dem man das natürlich eigentlich voraussetzen sollte.

          Dank und Gruß,

          frankx

          1. Hallo frankx,

            Strato lässt Dich zwar zwischen zwei PHP-Versionen unterscheiden, aber nur auf die Endungen php* (viell. noch phtml?)- NICHT(!) aber - ich habe aus gegebenem Anlass dort bereits vor Wochen nachgefragt - auf die Endung *.html - zumindest bei ein Premiumpaket, von dem man das natürlich eigentlich voraussetzen sollte.

            Mit der richtigen AddType-Anweisung in der .htaccess sollte eigentlich selbst das kein Problem sein. Dass das nicht automatisch in einem Konfigurationstool geht, heißt ja nicht, dass man das nicht manuell hinkriegt.

            Kann natürlich sein, dass die Konfiguration bei Strato so seltsam ist, dass es wirklich nicht geht.

            Viele Grüße,
            Christian

            1. Hellihello Christian,

              "vielen Dank für Ihre Anfrage vom 11.12.2006.

              Ein parsen von PHP in .htm(l) ist im Rahmen der Webhosting Pakete leider nicht möglich.

              Nutzen Sie dafür bitte die Möglichkeiten unserer dedizierten Server und virtuellen Server. Genauere Informationen zu den Servern entnehmen Sie bitte: www.strato.de/server und http://www.strato.de/v-power/"

              Zitat aus der Antwortmail von Strato.

              Gruß,

              frankx