mardi 8 juillet 2008

Activer le Mod Rewrite d'Apache avec Ubuntu

Pour permettre la réécriture d'URL pour un site, il faut activer le mod rewrite d'Apache.
Pour cela, avec Ubuntu, il faut suivre les étapes suivantes :

1) Ajouter le module mod_rewrite dans la liste des modules Apache à charger au démarrage de celui-ci. En pratique :
- soit on crée un lien symbolique vers /etc/apache2/mods-available/rewrite.load dans /etc/apache2/mods-enabled/ :
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
- soit on utilise une commande tout prête d'Ubuntu qui va faire la même chose :
sudo a2enmod rewrite

2) Permettre la réécriture d'URL pour le(s) site(s) voulu(s) :
sudo gedit /etc/apache2/sites-available/default

Dans la partie <Directory /var/www/>, changer AllowOverride None par AllowOverride All

3) Relancer le serveur Apache :
sudo /etc/init.d/apache2 restart

4) Ne pas oublier d'activer le moteur de réécriture dans les fichiers .htaccess en écrivant la ligne suivante en début de fichier :
RewriteEngine On

8 commentaires:

sheedpx a dit…

Merci, ça marche parfaitement !

Guillaume a dit…

De rien ;)

Casa a dit…

Bonjour , ou est ce qu'on trouve le fichier .htaccess

Guillaume a dit…

Bonjour,
On le place généralement à la racine de son site web.

Casa a dit…

Je travaille sous linux , j'ai créé le fichier et je l'ai mis dans le même dossier que ma page test.html mais ça ne fonctionne pas

Guillaume a dit…

Qu'est-ce qui ne fonctionne pas précisément ?
Il ne faut bien sûr pas oublier d'écrire les règles de réécriture ;-)

Casa a dit…

J'ai ajouté les deux lignes LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c dans mon fihchier httpd.conf et j'ai ajouté le fichier .htaccess qui contient
RewriteEngine on
RewriteRule ^test\.html$ /test.php [L]
je mets ces deux fichiers dans un dossier dans le bureau ,j'ouvre mon anvigateur et je mets Test/test.html
mais la page ne s'affiche pas

Guillaume a dit…

Remplacer la règle de réécriture par :
RewriteRule ^test.html$ test.php [L]

l'antislash devant le point n'est pas utile. Et le slash devant test.php redirige sur le répertoire racine au lieu du répertoire courant.

Si le mod_rewrite est bien activé, ça fonctionnera.