DSC_0464.jpg DSC_0462.jpg DSC_0298.jpg

 i need more coffee

Atteint depuis mon plus jeune âge d'hippopotomonstrosesquippedaliophobie (cultivez vous ça ne fera pas de mal) j'ai décidé de faire un blog sur ma maladie (be feeeaar..).
Blague à part c'est un blog totalement axé génie logiciel que vous trouverez ici. Du PHP, du J2EE, et évidement toutes les technologies qui leur sont liées.

Have fun !

Cherokee et CmsMadeSimple

23 avril 2012Posté par : Kevin Danezis dans CmsMadeSimple

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

2012-04-23_151434.png

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

 

2012-04-23_152042.png

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