Réécriture du module Apache
mod_rewrite est un module apache qui permet de réécrire les URL demandées par le client avant que les pages ne soient récupérées par apache.
Par exemple, www.site.com/products.php?code=459 peut être écrit sous la forme www.site.com/products/459 ou www.site.com/products/459.html.
La deuxième URL est réécrite dans la première par mod_rewrite en utilisant les règles de réécriture spécifiées dans le fichier .htaccess.
Activer la réécriture de mod
Pour activer le module mod_rewrite, utilisez la commande a2enmod.
$ sudo a2enmod rewrite
Pour désactiver ce module :
$ sudo a2dismod rewrite
Activer .htaccess
Modifiez ensuite le fichier :
/etc/apache2/sites-enabled/000-default
Cherchez la rubrique :
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </directory>
Remplacez AllowOverride None par AllowOverride FileInfo comme :
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Order allow,deny allow from all </directory>
Redémarrez apache maintenant
$ sudo /etc/init.d/apache2 restart
Tester les règles Htaccess
Placez maintenant un fichier .htaccess dans le dossier /var/www/ pour tester la réécriture du mod
Pour tester si mod_rewrite fonctionne ou non, remplissez le fichier .htaccess avec du texte inutile, puis ouvrez un fichier de ce dossier dans le navigateur.
Vous devriez obtenir une erreur de serveur interne 500 et une erreur .htaccess dans le fichier journal apache. Cela montre que maintenant mod_rewrite est activé.
Maintenant, mettez quelques règles de réécriture dans le fichier .htaccess
RewriteEngine on RewriteRule ^([0-9]+).html$ index.php?id=$1
qui devrait remplacer un dossier/23.html par dossier/index.php?id=23 par exemple.
Liens et ressources
Pour plus de détails et d'instructions sur la configuration de la réécriture des mods et l'écriture des règles htaccess, consultez la page officielle de la documentation. Certains des liens sont donnés ci-dessous :
1. Réécriture du mod Apache 1.3
2. http://httpd.apache.org/docs/1.3/howto/htaccess.html
3. http://httpd.apache.org/docs/1.3/configuring.html#htaccess
4. http://httpd.apache.org/docs/2.2/howto/htaccess.html
5. http://wiki.apache.org/httpd/DistrosDefaultLayout