3.3.4 Apache en mod_rewrite

Hoewel CakePHP is gebouwd zodat het werkt met mod_rewrite bij een standaard installatie (en dat is meestal ook het geval), zien wij toch regelmatig dat gebruikers moeite hebben om alles goed in te stellen. Hieronder staan een paar tips om mod_rewrite aan de praat te krijgen.

  • Zorg ervoor dat een .htaccess bestand de standaard configuratie van apache mag overschrijven. In de apache configuratie staat als het goed is de variabele AllowOverride bij de opties voor een webroot map. Deze AllowOverride moet op all staan.
  • Zorg ervoor dat je de httpd.conf van het gehele systeem wijzigt in plaats van een gebruiker- of site-specifieke httpd.conf.
  • Zijn de .htaccess bestanden wel geupoad? Bij sommige ftp software worden bestanden die beginnen met een punt overgeslagen, omdat deze verborgen zijn. Zorg ervoor dat de .htaccess bestanden geupload zijn op de server.
  • Is mod_rewrite wel geladen? In de configuratie van apache staat ergens LoadModule rewrite_module libexec/httpd/mod_rewrite.so en bij Linux/Unix gebruikers staat er ook AddModule mod_rewrite.c. Zorg dat er geen # of ander commentaar teken voorstaat en probeer apache te herstarten.
  • Heb je CakePHP in een gebruiker map geinstalleerd (bijvoorbeeld http://examplecom/~username), pas dan het .htaccess bestand aan in de hoofdmap van je CakePHP installatie. De volgende regel moet toegevoegd worden: "RewriteBase /~username"