3.3.4 Apache et mod_rewrite

Bien que CakePHP soit architecturé pour travailler avec mod_rewrite tel quel – et il le fait – nous avons remarqué que certains utilisateurs se battent pour obtenir quelque chose qui marche bien sur leurs systèmes. Voici quelques astuces que vous devriez essayer pour le faire fonctionner correctement :

  • Assurez-vous qu’une réécriture .htaccess est permise. Dans votre httpd.conf, vous devriez avoir une section qui définit votre répertoire sur le serveur. Vérifiez que AllowOverride est défini sur All pour le DocumentRoot adéquat.
  • Assurez-vous que vous avez édité le httpd.conf du système et non celui d’un utilisateur ou d’un site spécifique.
  • Est-ce que CakePHP a perdu ses fichiers .htaccess obligatoires ? Cela arrive parfois durant la copie ou le déplacement, parce que certains systèmes d’exploitation traitent les fichiers qui commencent par un "." comme des fichiers cachés. Assurez-vous que votre copie de CakePHP provient de la section de téléchargement du site ou de notre dépôt SVN et qu'il a été décompacté correctement.
  • Assurez-vous que vous chargez mod_rewrite correctement. Vous devriez voir quelque chose comme : "LoadModule rewrite_module libexec/httpd/mod_rewrite.so" dans votre httpd.conf (les utilisateurs Unix/Linux devraient aussi voir quelque chose comme : "AddModule mod_rewrite.c"). Assurez-vous également que ces lignes n'ont pas été commentées (en étant précédées d'un #). Redémarrez Apache pour être certain que les réglages de votre configuration sont activés.
  • Si vous avez installé CakePHP dans un répertoire utilisateur (http://exemple.com/~nom_utilisateur/cakephp/), ou tout autre structure d'url qui utilise déjà mod_rewrite, vous aurez besoin d'ajouter les déclarations RewriteBase aux fichiers .htaccess que CakePHP utilise (/.htaccess, /app/.htaccess, /app/webroot/.htaccess). Les détails de ces modifications dépendra de votre configuration. Merci de vous référer à la documentation en ligne d'Apache pour plus d'informations.