Apache htaccess ErrorDocument
Paul Brunner
- webserver
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
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
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
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
Ups, muss natürlich
Vgl. http://www.pbw.org/irgendwas_was_es_nicht_gibt.php4 lauten, nicht ...php!
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
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