Activer l'URL-REWRITING

Un article de Wiki SOS-ADMIN.

Category:Apache Ce petit guide est fait pour vous permettre d'installer le module d'URL Rewriting (ré-écriture d'URLs) et l'utiliser.

Je pars d'une installation de type apache2 sur debian.

Sommaire

Installation du module

A priori, le module est installé sur le serveur par défaut, mais il n'est pas activé. Vérifiez tout de même que le module est présent en faisant:

Code : Recherche

ls /etc/apache2/mods-available

Vous devez voir le fichier rewrite.loaddans la liste.

Il vous faut donc l'activer à l'aide de la commande:

Code : activer

a2enmod rewrite

Vous pourrez désactiver le module quand vous le souhaitez avec la commande:

Code : désactiver

a2dismod rewrite

Version inférieure d'Apache

Ajouter les lignes suivantes dans le fichier httpd.conf:

Fichier : httpd.conf
LoadModule rewrite_module libexec/mod_rewrite.so
AddModule mod_rewrite.c

Une fois ceci fait, relancez votre serveur.

Utilisation du module

Les règles de ré-écriture des URLs se mettent dans le fichier .htaccess et sont valables pour le répertoire dans lequel il est placé ainsi que tous les sous-répertoires. Par contre, si un .htaccess est positionné dans un sous-répertoire, il sera aussi analysé, prenez donc bien garde à ne pas créer de conflits entre répertoires (comme des redirections infinies).

Test du module

Fichier : test.html
<html>
<head>
<title>Test</title>
</head>
<body>
OK !
</body>
</html>
  • Dans ce répertoire, créez un fichier nommé .htaccess contenant les lignes suivantes
Fichier : .htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^inconnu\.html$  /test/test.html [L]

Si vous obtenez une erreur 404, ou pire une erreur 500, vérifiez la configuration de votre apache, la syntaxe de votre .htaccess, et surtout vérifiez aussi que vous avez redémarré le serveur apache.

Règles des ré-écriture

Explication du .htaccess exemple

Options +FollowSymlinks On active le suivi des liens symboliques
RewriteEngine on On déclare l'utilisation du module de ré-écriture
RewriteRule ce mot-clé introduit toute règle de réécriture, il est indispensable
^inconnu\.html$ c’est la première partie de la règle, celle qui determine la chaîne de caractères que le module devra rechercher pour la réécrire. Elle contient deux caractères spéciaux marquant le début (^) et la fin ($) de la ligne
/test/test.html a chaîne par laquelle il faudra remplacer celle trouvée à l’étape précédente. En règle générale, elle correspond au nom d’un fichier existant réellement dans votre espace Web.
[L] Un flag (drapeau) signifiant que cette règle est la dernière à appliquer dans ce cas ( L = last = dernier ) et que le module ne doit plus rechercher à réécrire cette chaîne.