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:
Merci, ça marche parfaitement !
De rien ;)
Bonjour , ou est ce qu'on trouve le fichier .htaccess
Bonjour,
On le place généralement à la racine de son site web.
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
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 ;-)
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
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.
Enregistrer un commentaire