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:
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:
a2enmod rewrite
Vous pourrez désactiver le module quand vous le souhaitez avec la commande:
a2dismod rewrite
Version inférieure d'Apache
Ajouter les lignes suivantes dans le 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
- Créez un répertoire nommé test que vous placerez à la racine de votre site (il sera donc accessible via l'adresse http://www.votre-site.com/test/.
- Dans ce répertoire, créez un fichier HTML nommé test.html (http://www.votre-site.com/test/test.html) contenant uniquement les lignes suivantes :
<html> <head> <title>Test</title> </head> <body> OK ! </body> </html>
- Dans ce répertoire, créez un fichier nommé .htaccess contenant les lignes suivantes
Options +FollowSymlinks RewriteEngine on RewriteRule ^inconnu\.html$ /test/test.html [L]
- Transférez ce répertoire et ces deux fichiers sur votre site, puis rendez-vous à l'adresse http://www.votre-site.com/test/inconnu.html
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. |

