Comment configurer CmsMadeSimple sur Cherokee. Je pensais avoir la solution lorsque j'ai mis en ligne le site www.furie.be mais j'ai déchanté lorsque j'ai eu l'occasion de migrer l'essentiel des sites de l'association SU³ d'un serveur Apache vers un serveur Cherokee. Test grandeur nature qui aura mis ma patience à rude épreuve. En cause ? les pretty-urls
La solution
Sans trainer en longueur je donne ici les configurations nécessaire pour que CmsMadeSimple fonctionne en pretty-url.
En rouge vous trouverez les éventuelles variables à modifier selon l'extension configurée dans votre fichier ./config.php de CmsMadeSimple
En vert vous trouverez les éventuelles variables à modifier selon le répertoire ou se trouve votre installation de CmsMadeSimple (à la racine ou dans un sous répertoire ?)
Créez une nouvelle Règle dans Cherokee sur votre Vhost
Cliquez sur l'image pour l'agrandir
La règle est donc une règle de type Regular Expression. Avec pour première valeur : ^(.+).html$ ou ^(.+)$ selon votre configuration des extensions.
Par défaut elle sera définie comme "final" transformez la en "non-final" en cliquant sur le rectangle jaune dans la liste de gauche
Ensuite il faut ajouter une règle supplémentaire : File exists.
Ensuite vous inversez la condition grâce à la négation NOT
Vous devez alors obtenir ce que j'ai dans l'image.
Personnalisez la règle selon votre/vos installation(s) de CmsMadeSimple dans cette même Vhost
Dans ce second onglet vous spécifiez un traitement de type redirection et ajoutez autant de Rule Set que vous avez d'installation dans différents sous-répertoire.
Dans mon exemple j'ai un site internet avec 3 sous répertoires (/cms, /cms110 et /cms111x) contenant chacun une installation de CmsMadeSimple différente. J'ai donc besoin de 3 lignes de Rule Set.
Toutes les Rule Set doivent être de type internal pour CmsMadeSimple. Voici un exemple ( http://www.exemple.fr/sous_repertoire/page/lambda.html)
Regular Expression : ^/cms110/(.+).html$
Substitution : /cms110/index.php?page=$1
Pensez à personnaliser /cmsms110 avec le nom de votre sous répertoire. Supprimez cette portion de chaine si votre installation est à la racine de votre site. ( http://www.exemple.fr/page/lambda.html)
Regular Expression : ^/(.+).html$
Substitution : /index.php?page=$1
Pensez à personnaliser .html si vos extensions sont différentes. Supprimez cette portion de chaine si vous travaillez avec des pages sans extension (http://www.exemple.fr/sous_repertoire/une/page/lambda)
Regular Expression : ^/cms110/(.+)$
Substitution : /cms110/index.php?page=$1
Voilà ça devrait être bon :)
Pensez à faire un hard-reboot à cherokee. J'ai constaté qu'il ne prenait pas systématiquement en compte les modifications de regex en soft-reboot.
Même constat : durant vos tests, n'hésitez pas à changer d'url de test pour vos pretty-url car firefox conserve un cache des redirections internes qui fausse le résultat dans certains cas.
comments powered by Disqus