• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

.htaccess 500 Fehler

Simon Marx

Neues Mitglied
Guten Tag,

ich bin derzeit eine Hompage am erstellen und demnach auch eine .htaccess.
Dank der .htaccess lässt sich mein Routing Verfahren realisieren, Fehlerseiten (403/404) anzeigen.
Jetzt möchte ich noch die 500er Fehlerseite hinzufügen, wird im Web immer so schön leicht beschrieben, dass es genau so ginge, wie mit 404 Fehlern.

Nix da, anscheinend...

ErrorDocument 500 /frontend/error/500.html
ErrorDocument 500 http://www.meinedomain.de/frontend/error/500.html

Beide Varianten habe ich schon probiert, es gelingt allerdings nicht.
Wie genau kann ich 500er Fehlerseiten mit meinen eigenen Designs belegen? Geht dies überhaupt? Da es ja ein "Serverfehler" ist, liest er die .htaccess trotzdem noch ein? Wodurch werden Serverfehler alle hervorgerufen (im groben)? Ich weiß z.B. das 500er Fehler auch durch PHP verursacht werden, was ja bedeutet das vorher Content bzw. Funktionen geladen wurde, also sprich müsste die htaccess auch geladen worden sein.

Mit freundlichen Grüßen und einen vielen Lieben dank im voraus für eure Antworten.
 
Werbung:
Ich selber regle das über ein PHP-Script. meine .htaccess sieht auszugsweise so aus:
Code:
ErrorDocument 400 /error.php?nr=400
ErrorDocument 401 /error.php?nr=401
ErrorDocument 403 /error.php?nr=403
...
ErrorDocument 500 /error.php?nr=500
...

In der error.php kannst du dann den Fehler auswerten, indem du $_GET['nr'] abfragst und kannst entsprechend handeln.
In meinem Fall wird bei bestimmten Fehler ein Mail geschickt, ein bestimmter Hinweis ausgegeben oder was du halt gerne möchtest.
Und ja, .htaccess funktioniert auch bei Server Error.
500`er Fehler treten immer dann auf, wenn der Webserver Probleme hat, etwas zu interpretieren, eine Sprache (z.B. Perl) zu starten, die er nicht findet, wenn Rechte falsch gesetzt sind, fehlerhafte Einträge in den Config-Files etc.

Hilfreiche Variablen in der error.php sind alle $_SERVER Variablen. Bsp:
PHP:
/*
* print_r($_SERVER);
*/
$message = "Fehlermeldung  : ".$_GET['nr']."\n";
$message .= "Welche URI wurde verlangt         : ".$_SERVER['REQUEST_URI']."\n";
$message .= "Pfad zur aktuellen Datei          : ".$_SERVER['PATH_TRANSLATED']."\n";
$message .= "Browser                           : ".$_SERVER['HTTP_USER_AGENT']."\n";
$message .= "IP-Adresse                        : ".$_SERVER['REMOTE_ADDR']."\n";
$message .= "ISP                               : ".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\n";
$message .= "Datum & Uhrzeit                   : ".date("d.m.Y")." - ".date("H:i")."\n";
$message .= "Anforderungsmethode               : ".$_SERVER['REQUEST_METHOD']."\n";
$message .= "Query-String                      : ".$_SERVER['QUERY_STRING']."\n";
$message .= "Webserver Wurzelverzeichnis       : ".$_SERVER['DOCUMENT_ROOT']."\n";
$message .= "Inhalt des Accept-Header          : ".$_SERVER['HTTP_ACCEPT']."\n";
$message .= "Inhalt des Accept-Charset-Headers : ".$_SERVER['HTTP_ACCEPT_CHARSET']."\n";
$message .= "Language-Header                   : ".$_SERVER['HTTP_ACCEPT_LANGUAGE']."\n";
$message .= "Connection-Header                 : ".$_SERVER['HTTP_CONNECTION']."\n";
....
.... usw.
 
Hey sysop,

ich will später auch sowas in der Art erstellen, allerdings ist das Problem bei mir das die htaccess nicht greift.

ErrorDocument 500 /error.php?nr=500

Diese Codezeile funktioniert bei mir nicht,

Code:
Options +FollowSymLinks
IndexIgnore */*
# Turn on the RewriteEngine
RewriteEngine On
#  Rules
RewriteCond %{REQUEST_URI} !^/
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
# Error Pages
ErrorDocument 400 /frontend/error/400.html
ErrorDocument 401 /frontend/error/401.html
ErrorDocument 403 /frontend/error/403.html
ErrorDocument 404 /frontend/error/404.html
ErrorDocument 500 /frontend/error/500.html


<FilesMatch "\.(tpl|htaccess|yml|.)$">
    order allow,deny
    deny from all
</FilesMatch>

Options -Indexes

ich kriege die Standard (in meinen Falle GoogleChrome) 500er Fehlerseite angezeigt.
Die z.B. 403 Fehlerseite hingegen, wird mir angezeigt.

Lg
 
Werbung:
Hey,

nachdem hier 24 Stunden keine Antwort mehr kam, wollte ich nochmal auf diesen Post aufmerksam machen in der Hoffnung das mir jemand bei meinem Problem helfen kann.

Mit freundlichen Grüßen
 
Ich könnte mir nach deinen Versuchen nur vorstellen, dass dein Provider aus ihm bekannten Gründen das Umleiten des 500-er Fehler irgendwie unterbunden hat. Wie wäre es, wenn du dein Problem mal an dessen Hotline meldest. Zusätzlich würde ich eventuell am Anfang einer Catch-PHP noch ein Logging integrieren und alle Fehlversuche in einer Datei protokollieren.
 
Werbung:
Wenn Du einen eigenen root-Server hast frage ich mich wieso Du noch nicht in den Logfiles näher geschaut und vlt. auch das Debugging mit angeworfen hast?
 
Guten Morgen,

ich möchte nicht herausfinden warum der 500er Fehler kommt, sondern warum meine eigene 500er Fehlerseite nicht angezeigt wird.

Das ich dies im log sehen könnte is mir nicht bekannt.

Den 500er Fehler an sich provoziere ich selber durch einen Fehler im PHP Script.

MfG
 
ich habe keinen Provider, ich habe einen RootServer mit Debian 7, Apache ...
OK, dann müsste es ja die Default-Einstellung sein, die eine alternative 500er Seite verbietet.

Den 500er Fehler an sich provoziere ich selber durch einen Fehler im PHP Script.
Kann man den irgendwie auch anders produzieren? Weil wenn du ein fehlerhaftes Script verwendest, dann ist ja eventuell aus Sicht von Apache alles in Ordnung und die Script Engine sendet den HTTP Fehler Header.
 
Werbung:
Hey NetAktiv,

ich glaube nicht das es wegen dem fehlerhaften Script von Apache nicht akzeptiert wird, andernfalls würde mir die Standard 500er Fehlerseite ja auch nicht angezeigt werden (welche ja ausgelöst wird, durch den Fehler den ich provoziere).

Die Frage ist (habe mich damit nicht sonderlich viel auseinander gesetzt) welche Default Einstellung könnte es denn sein, wenn jede andere Fehlermeldung bei mir klappt (also Sprich für jede andere Fehlermeldung meine eigene Seite genommen wird) nur halt für die 500er nicht.

MfG
 
Zurück
Oben