Ich bin gerade bei einem Kunden darüber gestolpert und möchte die Lösung gerne mit allen teilen, falls noch andere mal darauf stoßen:
Der Kunde hat eine alte Contao 2.10-Version und zog zum Webhoster All-Inkl um. Entsprechend der Anleitung wurde in der .htaccess der übliche Code ergänzt. Wenn der Kunde sich dann aber im Backend einloggte, wurden alle weiterführenden Links z.B. das Bearbeiten von Artikeln oder Seiten falsch generiert. Anstatt des üblichen URL-Aufbaus, befanden sich in der URL Konstrukte wie cgi-fpm/php54-fpm?do= oder cgi-fpm/php53-fpm?do= (je nachdem auf welcher Version der Server gerade lief, siehe auch die Erklärung des Hosters beim selben Problem eines anderen Users).
Es war offensichtlich, dass die alte Contao-Version nicht mit der neuen CGI-Version auf PHP 5.4-Basis zurecht kam.
Für das Problem gibt es mehrere Lösungen:
a) Idealerweise nimmt man das zum Anlass um endlich auf Contao 3.x upzudaten. Dadurch ist das Problem sofort behoben, weil C3 natürlich mit der Technik zurecht kommt.
b) Ein Update auf 2.11.x hilft aber auch schon.
c) Alternativ kann man den Server anweisen, dass er auf PHP 5.2 statt einer neueren Version läuft. Dazu muss man in die .htaccess im Root-Verzeichnis die Anweisung AddHandler php52-cgi .php an den Anfang schreiben. Danach sollte man alle Browser-Fenster schließen und neu aufrufen, da das Browser-Fenster sonst ggf. einen Session-/Temp-Fehler anzeigt.
Je nachdem unter welcher Contao-Version das Problem auftritt, kann es sein, dass man eine andere PHP-Version benötigt. Im aktuellen Beispiel funktionierte die 5.2, aber ggf. muss man da erstmal testen und z.B. auch php53-cgi ausprobieren.
d) Alternativ kann man den Safe Mode Hack aktivieren. Das ist natürlich keine dauerhafte Lösung, aber zumindest funktioniert dann die Sache mit den Links erstmal wieder.
Die "Lösungen" b-d haben natürlich dasselbe Problem: In allen Fällen läuft veraltete Technik (entweder ein altes Contao oder eine alte Servertechnik) weiter, wodurch es Sicherheitsprobleme geben kann bzw. das immer nur eine vorübergehende Lösung sein wird.
Lesezeichen