cmsms – pretty_urls, url rewriting, htacess et sous dossier

logo cmsms Lors de la mise en place d’un site basé sur CMSMS, vous pouvez être amené à installer le CMS dans un sous dossier, par exemple : http://www.domaine.tld/cmsms/.

Hors, dans ce cas de figure, la configuration des « Pretty-URLs » comme indiqué ici :
http://wiki.cmsmadesimple.org/index.php/FAQ/Installation/Pretty_URLs#Pretty_URL.27s
ne fonctionnera pas.

En effet, le système va considérer que le site est systématiquement à la racine du domaine. Dans le cas présent, en mettant en place les « Pretty_URLs » comme indiqué dans le fichier de configuration, j’ai créé un fichier .htaccess comme recommandé pour utiliser les noms de page avec .htm :
[perl] Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# 301 Redirect all requests that don’t contain a dot or trailing slash to
# include a trailing slash
# except for form POSTS
# RewriteCond %{REQUEST_URI} !/$
# RewriteCond %{REQUEST_URI} !\.
# RewriteCond %{REQUEST_METHOD} !POST$
# RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ index.php?page=$1 [QSA] [/perl]

Hors, dès l’activation, mes pages revenaient en erreur. Pour corriger ceci, il faut modifier la dernière règle de rewriting en y incluant l’emplacement dans lequel vous avez installé cmsms. Si par exemple vous etes dans ce cas de figure « http://www.domaine.tld/cmsms/ », votre fichier .htaccess devra être modifié comme suit (voir la dernière ligne) :
[perl] Options +FollowSymLinks
RewriteEngine on
RewriteBase /

# 301 Redirect all requests that don’t contain a dot or trailing slash to
# include a trailing slash
# except for form POSTS
# RewriteCond %{REQUEST_URI} !/$
# RewriteCond %{REQUEST_URI} !\.
# RewriteCond %{REQUEST_METHOD} !POST$
# RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

# Rewrites urls in the form of /parent/child/
# but only rewrites if the requested URL is not a file or directory
RewriteRule ^News/rss(.+)$ index.php?page=News/rss$1 [S=1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ /cmsms/index.php?page=$1 [QSA][/perl]

Le problème sera ainsi résolu et vous disposerez des « Pretty-URLs » basée sur l’URL rewriting, qui peuvent optimiser le référencement de votre site.

Loading

Tags: , , , ,

mercredi, octobre 27th, 2010 GNU - Linux, Technologie

1 Commentaire to cmsms – pretty_urls, url rewriting, htacess et sous dossier

  • Alan Dard dit :

    Merci pour ce tuto, cependant, sais-tu comment activer les pretty urls pour le détail des événements, dans module Calendar ??? Car il crée des adresses horribles du type  » index.php?mact=Calendar,cntnt01,default,0&cntnt01return_id=18&cntnt01detailpage=17&cntnt01year=2011&cntnt01month=10&cntnt01day=31&cntnt01display=list&cntnt01return_link=1&cntnt01detail=1&cntnt01lang=fr_FR&cntnt01returnid=17  » ce qui n’est ni lisible, ni url-friendly :/

    Merci :)

  • Ajouter un commentaire