Apache mod rewrite

= Auteur = CHANET Zoran

= mod_rewrite = Le module Apache de rewriting d’url se nomme mod_rewrite. Il permet d’indiquer simplement des règles de réécriture, selon l’url demandé par l’utilisateur. Cela se fera dans le fichier .htaccess. Pour l’activer, il faut ajouter ces quelques lignes dans le fichier  (si elles n’y sont pas déjà) :  RewriteEngine On  Il faut alors redémarrer le serveur Apache : sudo /etc/init.d/apache2 restart

= Diagnostic = ls -l /usr/lib/apache2/modules/ sudo a2enmod rewrite
 * Si le module rewrite est présent, un fichier  doit exister. Cela se vérifie par la commande suivante :
 * Cette commande permet de recréer les liens entre Apache et le mod_rewrite :

= Fichier .htaccess =
 * Le mode rewriting est d’abord activé avec.
 * ^ correspond au début d’une expression rationnelle, $ à la fin de celle-ci. Les symboles utilisés sont décrits sur cette page :.
 * Les drapeaux de réécriture sont décrits ici :.
 * Les différentes directives utilisables sont recensées dans la documentation :.
 * permet d'accéder aux variables de serveur.

Exemple
Nous allons explorer l'exemple d'une règle de redirection à l'aide des directives RewriteCond et RewriteRule, utilisées comme suit : RewriteCond  RewriteRule  [] .htaccess : RewriteEngine on RewriteCond %{REQUEST_URI} ^/$ RewriteRule (.*) /app [R=301,L]
 * On active d’abord le moteur de redirection.
 * Ensuite, on définit une condition d’accès à la règle,  indiquant la variable serveur correspondant à l'uri auquel on essaie d'accéder, l’uri spécifié étant   (par l'expression rationelle  ).
 * Enfin, la règle de réécriture s’applique à tout l’uri, et le remplace par . Une redirection est alors performée en indiquant un code de retour 301 . Cette règle est indiquée comme la dernière à appliquer par le flag.
 * Si ce fichier  est utilisé pour un serveur hébergé à l'adresse , tout accès à   sera redirigé vers.

= Sources = [1] https://httpd.apache.org/docs/2.2/fr/rewrite/intro.html#regex [2] https://httpd.apache.org/docs/2.2/fr/rewrite/flags.html [3] https://httpd.apache.org/docs/2.2/fr/mod/mod_rewrite.html#Solutions [4] https://httpd.apache.org/docs/2.2/fr/rewrite/intro.html [5] https://itx-technologies.com/fr/blog/28-installer-et-activer-le-module-mod_rewrite-sur-apache-et-ubuntu