3.3.4 Apache und mod_rewrite

Während CakePHP so gebaut ist, dass es „out of the box“ mit dem Apache Modul mod_rewrite zusammenarbeitet –was normal auch funktioniert– haben wir festgestellt, dass einige Nutzer kämpfen müssen, um alles zum Laufen zu bekommen. Hier sind einige Dinge, die Du beachten solltest, wenn Du es korrekt zum Laufen bringen willst:

  • Stelle sicher, dass das Überschreiben mittels .htaccess erlaubt ist. In Deiner httpd.conf solltest Du eine Sektion haben, welche das Verzeichnis auf deinem Server definiert. Stelle auch sicher, dass AllowOverride für den korrekten DocumentRoot auf All gesetzt wurde.
  • Stelle sicher, dass Du die httpd.conf des Systems und nicht die, eines Benutzers, oder eine seitenspezifische Datei bearbeitest.
  • Vermisst CakePHP seine benötigten .htaccess Dateien? Das kann beim kopieren oder verschieben vorkommen, da bei manchen Betriebssystemen Dateien, welche mit einem '.' anfangen, versteckt sind. Stelle sicher, dass deine CakePHP Kopie von der Downloadsektion auf unserer Seite oder aus unserem SVN-Repository stammen und richtig entpackt wurden.
  • Stelle sicher, dass Du mod_rewrite korrekt lädst. Du solltest in Deiner httpd.conf Datei, etwas ähnliches wie LoadModule rewrite_module libexec/httpd/mod_rewrite.so sehen (Unix/Linux Nutzer sollten ebenfalls etwas wie AddModule mod_rewrite.c sehen). Stelle auch sicher, dass diese Zeilen nicht auskommentiert wurden (das ist der Fall, wenn Du eine # voranstellst). Starte Deinen Apache neu, um sicherzustellen, dass die neue Konfiguration geladen wurde.
  • Wenn Du CakePHP in ein Benutzerverzeichnis installierst (http://example.com/~username), musst Du Deine .htaccess Datei des Hauptverzeichnisses Deiner CakePHP Installation anpassen. Füge einfach die Zeile "RewriteBase /~myusername/" hinzu.