Der Zauberlehrling

An den Zauberlehrling aus dem Gedicht von Johann Wolfgang Goethe fühlte ich mich kürzlich erinnert, als ich mir einen Magento-Shop angesehen habe, der nicht ganz rund lief. Kurz zum Hintergrund: wir haben den Shop nicht selber aufgesetzt, sondern das Projekt nur übernommen, nach dem die Kundin mit der Agentur, die sie bisher betreut hat, äußerst unzufrieden war. Den Shop hat die Kundin für einen mehr als günstigen Preis von dieser Agentur programmiert bekommen. Wobei günstig eigentlich der falsche Begriff ist, denn wer sich mit dem, was da angestellt wurde, näher beschäftigt, könnte auch die Meinung vertreten, das es billig gemacht wurde.

Auf der Grundlage des blank-Templates wurde der Shop aufgesetzt. Dabei stammte die grafische Vorlage von der Kundin selber und war soweit einwandfrei. Von der Programmierung kann man das jedoch nicht sagen. Statt alles sauber zu slicen und die Bilder mit alt-Tags zu versehen, besteht die Startseite aus einer riesigen Image Map. Kann man so machen, aber für mich ist das in etwa so, als wenn Handwerker im Haus – lassen wir das lieber mit dem Vergleich, denn ich möchte hier keine Handwerker diskreditieren.

Letztendlich lief der Shop trotz allem. Allerdings blieben die Bestellung aus. Bei Google schien der Shop auch nicht richtig gefunden zu werden. Sehr eigenartig, das Ganze. Letzte Woche wollte sich die Kunden dann bei Google-AdWords anmelden und bekam immer eine Fehlermeldung. Nach dem ich von dieser Meldung einen Screenshot bekommen hatte, staunte ich nicht schlecht: 404, page not found

Ein lange, mühsame Suche begann. In den Server-Logdateien war nirgends ein Fehler zu finden. Die Seite selber war nach wie vor über den Webbrowser zu erreichen. Probehalber versuchte ich, sie durch den W3C-Validator zu jagen. Dort bekam ich ebenfalls einen 404-Fehler. Was dann folgte, gehört wohl zu Standardprozedur. Die .htacccess-Datei prüfen, alles auskommentieren, eine separate index.html anlegen, zeilenweise die index.php durchgehen. Das alles brachte jedoch Ergebnis. Ich konnte keine Abweichung feststellen.
Dann sollte es wohl die harte Tour sein, dachte ich mir und lud die gesamte Installation auf den lokalen Rechner, um mittels diff die Unterschiede zu einer normalen Magento-Version finden zu lassen.

In der Zwischenzeit prüfte ich dann die Seite noch mal mit Lynx (kann ich nur empfehlen, bei manchen Seiten wird man richtig ernüchtert). Im Gegensatz zu anderen Browsern konnte ich da zu ersten Mal sehen, was genau passiert. Als erstes wurde tatsächlich ein 404-Fehler übertragen, der aber offensichtlich von Magento stammt. Anschließend wird auf eine Seite weitergeleitet und dabei zwei Cookies gesetzt. Nach etwas Recherche kam ich dann auf das Schlüsselwort noroute. Langsam kam Licht ins Dunkle und ein Weg zeichnete sich ab – der Weg, der hin zu der Seite führte, die der Besucher als Startseite wahrnimmt. In Magento ist das die Home Page. Ein Blick in den Bereich CMS führte dann zur Erkenntnis. Dort war die Startseite, die der primäre Einstiegspunkt bei einer Magento-Installation ist, deaktiviert.

Daher kam also die 404-Fehlermeldung. Magento wusste einfach nicht, was beim Aufruf der Startseite zu tun ist. Irgendwo in den Tiefen der Kerndatei ist dann wohl noch ein Befehl eingebaut worden, der dann zu einer festgelegten Seite springt. Leider natürlich erst nach der Fehlermeldung. Ich möchte erst gar nicht wissen, ob das ein Feature von Magento oder erst später hinzugekommen ist.

Und sie laufen! Naß und nässer
Wirds im Saal und auf den Stufen:
Welch entsetzliches Gewässer!
Herr und Meister, hör mich rufen! –
Ach, da kommt der Meister!
Herr, die Not ist groß!
Die ich rief, die Geister,
Werd ich nun nicht los.
(Aus: Der Zauberlehrling von Johann Wolfgang Goethe)

Programmieren ist mit Sicherheit kein Zauberhandwerk. Trotzdem gilt hier auch das, was für den Zauberlehrling zutrifft: Finger weg von Dinge, die man nicht versteht oder die die eigenen Fähigkeiten übersteigen! Die Startseite von einem Contentmanagemntsystem abzuschalten und dann auch noch als Inhalt für diese deaktivierte Seite „nix in cms” reinzusetzen ist schon starker Tobak.

Kommentar verfassen