Paul Brunner: Apache htaccess ErrorDocument

Eine wunderschönen Samstag zusammen,

Seit einer Konfigurationsänderung beim Provider (Schlund) akzeptiert htaccess keine php-Scripte als ErrorDocument-Ziel mehr (500-Fehler).

Kann ich durch eine zusätzliche Anweisung in htaccess dieses Problem lösen

Grüsse
Paul

  1. Hallo Paul,

    habe mich mit genau dieser Frage auch schon rumgeschlagen und mit Schlund auseinandergesetzt. Egal wer, es kam immer raus, dass es halt an der Konfiguration liegt und es nicht anders machbar ist (In dieser Beziehung: Saftladen!).

    Eine Notlösung habe ich gefunden, wenngleich das "Not" wohl dabei zu unterstreichen ist:
    In die htaccess:
      AddType application/x-httpd-php .php3 .php4 .phtml
    und dann alle php-Dateien in eines der Formate umbenennen (php3 -> PHP3-Unterstützung!). Ist zwar sicherlich nicht im Sinne des Erfinders (und ggf. nicht im Sinne von Schlund), scheint aber die einzige Lösung zu sein. Es besteht ja immernoch die Hoffnung, dass Schlund irgendwann mal merkt, dass es ein paar Kunden mehr sind, die das stört, und vielleicht ändern sie ihre Konfiguration doch eines Tages...

    Also, nicht vergessen: Jeden Monat schon eine Anfrage an Support schreiben warum das nicht klappt. :-)

    Grüße aus Würzburg
    Julian

    1. Hallo Julian,

      Eine Notlösung habe ich gefunden, wenngleich das "Not" wohl dabei zu unterstreichen ist:
      In die htaccess:
        AddType application/x-httpd-php .php3 .php4 .phtml

      Diese "Notlösung" habe ich auch schon ausprobiert. Es überrascht mich, daß es bei dir geht.

      AddType application/x-httpd-php .php3 .php .phtml
      (meine Dateien enden auf php)

      Mit dieser Eintragung erkennt er die php-Files bei mir überhaupt nicht mehr und biete sie zum download an. Hab ich auch noch nie erlebt!

      Gruss
      Paul

      1. Hi Paul.

        AddType application/x-httpd-php .php3 .php .phtml
        (meine Dateien enden auf php)

        Genau _das_ ist das eigentliche Problem bzw. die Not an der Lösung. Deine Dateien dürfen _nicht_ mit php enden da sich dann der Server querstellt. Wenn Du alle als .php4 laufen lässt und die htaccess entsprechend änderst sollte alles (bis auf Endung .php eben) laufen.

        Vgl. http://www.pbw.org/irgendwas_was_es_nicht_gibt.php

        Grüße aus Würzburg
        Julian

        P.S: Auf schlund.de selbst funktioniert übrigens auch nicht: http://www.schlund.de/error.php

        1. Ups, muss natürlich

          Vgl. http://www.pbw.org/irgendwas_was_es_nicht_gibt.php4 lauten, nicht ...php!

        2. Hallo Julian,

          leider läuft diese Workaround bei mir auch nicht.

          Ich habe eher den Eindruck das die Jungs ihr eigenes mime-type-mapping verwenden.

          Zum Beispiel:
          AddType application/x-irgend-was-anderes-als-httpd-php .php3 .php .phtml

          Dann greift
          Action application/x-httpd-php /php/php.exe
          natürliche ins leere und des File wird als unbekannt zum download angeboten.

          Weisst du ob es eine Möglichkeit gibt die definierten mime-types anzuzeigen?

          Gruß
          Paul

          1. Hallo Paul,

            habe jetzt mal in meinen Mails gewühlt und die Antworten voNS chlund gesucht. Mich hat's damals (April 2002) nicht wirklich weitergebracht, vielleicht hilft's Dir ja.

            --schnipp--

            Lage:
            Die Domain xyz.de liegt im Verzeichnis /homepages/.../htdocs/xyz.de/
            Ebenso die .htaccess mit Inhalt "ErrorDocument 404 /404.php" und die
            Datei 404.php (alalog bei Endung .html)

            Problem:
            Löse ich nun einen Fehler 404 durch Anforderung einer Datei mit Endung
            .html, .htm oder fehlerhaften Verzeichnis aus, so ist alles in Ordnung.
            Löse ich den Fehler durch eine Datei mit Endung .php aus, so bekomme
            ich die Standard-Fehler500-Meldung.
            Löse ich den Fehler mit endung .php3 aus, so bekomme ich die
            Rückmeldung "Fatal error: Unable to open
            /homepages/.../xyz.de/fehlendeDatei.php3 in - on line 0
            No input file specified."

            Wo ist hier der Fehler?

            Das Problem besteht darin, dass der PHP-Parser eine Datei ausführen möchte,
            sobald diese die Endung .php oder .php3 hat. Da die Datei nicht vorhanden
            ist, wird diese als Fehlerhaft interpretiert. Leider gibt es keine
            Möglichkeit, hier die Fehlermeldung "404" dazwischen zu schalten.

            Dies würde aber den Sinn der Error-Codes (speziell 404) ziemlich in Frage
            stellen. Auch sollte doch dann zumindest der neue Fehler (500) mit dem
            entsprechend festgelegten ErrorDocument 500 abgefangen werden statt mit der
            Standard-Meldung von Schlund. Und warum löst nur PHP4 einen Fehler 500 aus,
            PHP3 hingegen einen Fatal Error?

            Dies liegt an der Konfiguration von PHP3, offensichtlich kann der Fehler
            hier nicht von unserer Standard-Fehlermeldung abgefangen werden.
            --schnapp--

            Da ja die Variante mit php4- und php3-Dateien (die den Fehler auslösen) und einem Eintrag in die htaccss lösbar sind, kam mir die Antwort ziemlich merkwürdig vor. Ich hatte auch nicht wirklich den Eindruck, dass das Problem den Support von Schlund interessiert bzw. sie das Problem verstanden haben. Naja, so hab ich's dann sein gelassen weiter nachzubohren.

            Grüße aus Würzburg
            Julian