De:Anzeige des Quellcode statt der Seite
From phpCMS
[edit] Anstatt der Seite wird ihr Quellcode angezeigt
Wenn bei Benutzung des Webservers Apache eine Seite, z.B. http://domain.tld/index.htm, unter phpCMS nicht richtig ausgegeben wird, sondern man nur den Quellcode sieht, obwohl
- in der Contentdatei die Projektdatei richtig angegeben ist und
- die dort angegebenen Pfade stimmen,
- die Endung der Contentdatei .htm ist bzw. der in /parser/include/default.php Einstellung entspricht (.htm ist Standard)
- der Parser bei Direktaufruf (.../parser/parser.php in der Grundeinstellung) die Administrationsoberfläche richtig anzeigt,
so kann das mehrere Ursachen haben.
Um der Sache auf den Grund zu gehen und den Fehler zu finden, kann man wie folgt vorgehen:
Man verfälscht den Seitennamen, z.B. so: http://domain.tld/index_gibtsnicht.htm und ruft diese (nicht existierende) Seite auf.
Falls *.htm-Dateien per .htaccess richtig an phpCMS geleitet werden, dann sollte in diesem Falle eine Fehlermeldung von phpCMS kommen, dass es die Datei nicht gefunden hat.
Wenn statt dessen eine Fehlermeldung von Apache kommt, dann heißt das, dass die Datei nie an phpCMS weitergeleitet wurde.
Wenn man die Seite ohne Stealth-Mode direkt über den Parser aufruft, also http://domain.tld/parser/parser.php?file=index.htm und die Seite dann richtig angezeigt wird, dann bedeutet das, dass phpCMS funktioniert. Es ist nur so, dass – wie schon weiter oben vermutet - die *.htm-Dateien nicht an phpCMS weitergeleitet werden.
Es kommt also darauf an, dass die .htaccess-Datei die richtigen Angaben enthält und dass die richtige .htaccess-Datei gefunden wird.
Das gilt insbesondere dann, wenn die aufgerufene Contentdatei nicht im Wurzelverzeichnis der Website liegt, sondern in einem Unterverzeichnis.
In diesem Fall schaut der Apache zuerst im betreffenden Unterverzeichnis nach, ob dort eine .htaccess existiert und führt die Anweisungen darin aus. Ist in dem Verzeichnis keine .htaccess, dann geht Apache in das übergeordnete Verzeichnis und sucht dort usw.
Man kann also im Wurzelverzeichnis eine .htaccess Datei platzieren und deren Einstellungen mit einer weitern .htaccess in einem Unterverzeichnis – ggf. ungewollt - überschreiben.
Wenn man also bis hierher gekommen ist und festgestellt hat, dass phpCMS läuft, aber die *.htm-Seiten von Apache nicht dahin weitergeleitet werden, so gibt es dafür mehrere mögliche Gründe:
- Apache ist so konfiguriert, dass er die .htaccess Datei nicht einliest oder sie unter einem anderen Dateinamen erwartet (den kann man in der Apache-Konfiguration ändern). Dies kann man ausschließen, indem man testweise irgendwelchen Text in die .htaccess schreibt und schaut, ob Apache sich beim Aufruf einer Seite über einen Fehler in der .htaccess beschwert.
- Der Inhalt der .htaccess ist falsch. Die gängigen Möglichkeiten sind in der mit phpCMS mitgelieferten Datei "beispiel.htaccess" aufgeführt. (Ggf. nicht vergessen, die Pfade anzupassen.)
- Wenn die Contentdatei sich in einem Unterverzeichnis befindet darauf achten, dass man nicht nur in die .htaccess im Wurzelverzeichnis der Website nachschaut, denn es könnte im Unterverzeichnis noch eine weitere .htaccess existieren, die die Anweisungen derjenigen aus dem Wurzelverzeichnis überschreibt.
- Es sollte auch sichergestellt werden, dass die "AllowOverride"-Direktive in Apache nicht auf "None" eingestellt ist.
Basiert auf einem Thread aus dem phpCMS Supportforum
Main Page: Tutorials MainPage | Top Page: De:MiniHowTos
This page in other languages: English

