Bei nicht existierender Seite gibt es einen fatal error

Mir ist aufgefallen, dass bei nicht existierenden Seiten in meinem Shop eine Fatal error Seite aufgerufen wird. Ich kann im Moment noch gar nicht sagen, wie lange das schon so ist. Egal welche Einstellungen ich bei den SEO-Router Einstellungen mache; es ändert sich nichts.

engine/Library/Enlight/Controller/Dispatcher/Default.php on line 507

Hier bleibts dann stecken. Weiß jemand Rat?

Das passiert, wenn du das error-debugging in der config.php aktiviert hast. Das müsstest du deaktivieren.

Das hab ich gemacht, aber jetzt erscheint dann eine weiße Seite (wenigstens kein Fatal error). Irgendwo habe ich, bzw. ein Plugin, etwas verstellt.

Mal den Sicherheitsmodus im Plugin Manager aktiviert? Dann weißt du, ob ein Plugin dich ärgert.

LG Andre

Habe ich eben ausprobiert. Soviele Fremdanbieter-Plugins hatte ich gar nicht. Newsletter2go und noch was von Google. Hat aber keine Besserung gebracht. Jetzt könnte ich mir noch PayPal vorstellen. Könnte sein, dass das mit der Installation von PayPal Ratenzahlung begonnen hat. Würde zeitlich zusammenpassen mit dem Erstauftreten des Fehlers.

Update: habe PayPal Ratenzahlung deaktiviert. Hat keine Besserung gebracht. 

Jetzt wird es wohl irgendwo eine falsche Einstellung sein. Wo fange ich da an zu suchen?

Vielleicht hast du in den SEO/Router Einstellungen etwas falsches bei der 404 Page hinterlegt? (bspw. inaktive Landingpage).

Das kann es nicht sein. Ich hatte gar keine eigene 404 Fehlerseite hinterlegt. Die Einstellung, bei 404 Fehler zur Startseite zu gehen, müsste eigentlich funktionieren. Ansonsten müsste doch mindestens die Ups-Fehlermeldung kommen. Zwischenzeitlich wird jetzt sogar ein http Error 500 angezeigt, wenn eine nicht existierende Seite aufgerufen wird. Dabei habe ich nur ein bißchen mit den SEO-Rooter einstellungen gespielt. Wobei ich mir sicher bin, dass ich die ursprünglichen Einstellungen wieder zurück gestellt habe.

Einen 500er gibt es immer mit nem echten Fehler. Also mal den Fehlerlog vom Server (nicht Shopware-Log) besorgen.
Wie man den bekommt, dürte der Hoster wissen.

Per FTP habe ich Zugriff auf eine weblog-Datei, welche täglich erstellt wird. Diese ist jetzt aber nicht gemeint? 

Bei meinem Provider habe ich die Möglichkeit eine error_log über den php-ini Editor zu aktivieren. Werde das jetzt einstellen mal schauen, was der auswirft.

Jetzt konnte ich den php-error_log aktivieren. Mehrfach wurde dieser Feher ausgegeben:

PHP Warning: Module 'zip' already loaded in Unknown on line 0

Vermutlich wird es aber an diesem Fehler liegen. “test” war einfach die nicht existierende Seite, welche ich aufgerufen habe.

PHP Fatal error: Uncaught exception 'Enlight_Controller_Exception' with message 'Controller "test" not found' in /kunden/1234567/rp-hosting/1234/1234/Paella_Grill/engine/Library/Enlight/Controller/Dispatcher/Default.php:507
Stack trace:
#0 /kunden/1234567rp-hosting/123456/Paella_Grill/engine/Library/Enlight/Controller/Front.php(222): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#1 /kunden/1234567/rp-hosting/1234567/Paella_Grill/engine/Shopware/Kernel.php(215): Enlight_Controller_Front->dispatch()
#2 /kunden/1234567/rp-hosting/1234567/Paella_Grill/vendor/symfony/http-kernel/HttpCache/HttpCache.php(486): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#3 /kunden/1234567/rp-hosting/1234567/Paella_Grill/engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request in /kunden/1234567/rp-hosting/1234567/Paella_Grill/engine/Library/Enlight/Controller/Dispatcher/Default.php on line 507

(Pfade habe ich verfälscht)…

Irgendwie wird wohl ein Controller für jede Seite aufgerufen, welche nicht exisiert.

Das „Controller not Found“ ist die Standardfehlermeldung, die kommt, wenn auf die Startseite weitergeleitet wird. Das ist also nicht die Meldung, die den Feler verursacht.

Hast du mal den kompletten Bereich für die Fehlerausgabe aus der config.php entfernt? Die Weiße Seite ist typisch, wenn der Errorhandler dort falsch definiert ist.

1 „Gefällt mir“

Das ist es gewesen. Ich habe diese Einträge in der config.php entfernt:

  'front' => [
        'showException' => true
    ],
    'phpsettings' => [
        'display_errors' => 0,
    ],
    'front' => [
        'noErrorHandler' => true,
        'throwExceptions' => true,
    ],

Allerdings hatte ich das ja irgendwann mal aus irgendwelchen Gründen eingebaut. Leider weiß ich nicht mehr wann und warum. Hauptsache, es läuft jetzt wieder richtig.

Grüße

Hansi