Cette étape a déjà été évoquée lors d’un précédent billet consacré à l’url-rewriting. Mais il faut tenir compte, lors du formatage de ce que peuvent interpréter à la fois le serveur (ici Apache) et le système de gestion de contenu utilisé (ici Joomla) lorsque cela est le cas.

Tout d’abord, il est important de le positionner à l’endroit exact où débute la racine du site géré par Joomla et non pas à la racine du ou des sites gérés par le serveur. En effet, ce fichier est véritablement un fichier de pilotage à la fois pour le serveur et Joomla.

En cas de multiplicité des fichiers, il faut alors mettre en place un véritable déploiement. Nous nous intéressons ici uniquement à la mise en place de l’url rewriting pour un seul site sous Joomla et donc nous déposerons notre fichier à la racine de Joomla.

A titre d’exemple utilisable, voici un le contenu d’un fichier .htaccess qui traite correctement une régénération propre des urls sous Joomla. Et ce à partir de la version 1.0.14.

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^news.htm$ /joomla/index.php?option=com_content&task=section&id=1&Itemid=2 [L]
RewriteRule ^links.html$ /index.php?option=com_weblinks&Itemid=23 [L]
RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ /joomla/index.php?option=com_content&task=view&id=$1&Itemid=$2 [L]
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR]
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php

Il est ensuite possible d’affiner les RevriteCond et RewriteRule en fonction de la structure du site et des règles d’écritures.