Dernière mise à jour : 31/12/2021 à 18h08
Table des matières

Introduction
Encore un problème simple à résoudre mais qui m'a demandé beaucoup de temps. Sur ce site que vous consultez actuellement, j'utilise la réécriture d'URL. Je ne m'étendrai pas sur le sujet, si vous êtes ici c'est que vous savez de quoi je parle mais que cela ne fonctionne pas chez vous.
Je ne vais pas détailler ici comment créer des règles de réécriture, le CMS que j'utilise (PhpBoost) le fait automatiquement mais la configuration de base du serveur Apache pour que cela fonctionne.
En partant du principe que votre hébergement permet de faire de la réécriture d'URL, voici les quelques paramétrages à mettre en place.
Activation de mod_rewrite
Pour activer mod_rewrite sur un serveur Apache, une simple commande :
Code BASH :
a2enmod rewrite
Si la réponse à la commande est que a2enmod n'est pas installé, installez locate :
Code BASH :
apt install locate
Puis recherchez la commande a2enmod :
Code BASH :
locate a2enmod
La réponse vous donnera la localisation, par exemple :
Citation :
/usr/sbin/a2enmod
Vous pourrez alors taper la commande suivante (à adapter en fonction de la réponse précédente) :
Code BASH :
/usr/sbin/a2enmod rewrite
La petite astuce qui m'a demandé tant de recherches...
Malgré cette activation, cela ne fonctionnait toujours pas chez moi, ce qu'il manquait, c'est une toute petite modification dans la configuration d'Apache. Ouvrez le fichier /etc/apache2/apache2.conf et cherchez le bloc correspondant à la localisation de votre site web, généralement celui-ci :
Code PHP :
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
Remplacez "None" par "All" puis redémarrez le serveur Apache :
Code BASH :
systemctl restart apache2.service
Et voilà, le problème est normalement réglé.
Vérifier que la réécriture fonctionne
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 :
Vous pouvez vous rendre sur cette page avec votre navigateur pour vérifier (http://www.votre-site.com/test/), vous devriez avoir une page avec "OK !"
Dans ce répertoire, créez un fichier nommé .htaccess contenant les lignes suivantes :
Code BASH :
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
Vous devriez normalement avoir le même résultat que précédemment.
Et voilà !
