Ré-écriture d'URL sous Apache
Introduction
Encore un problème simple à résoudre mais qui m'a demandé beaucoup de temps. Sur l'ancienne version du site (sur phpBoost) que vous consultez actuellement, j'utilisais 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'utilisais (PhpBoost) le fait automatiquement mais la configuration de base du serveur Apache pour que cela fonctionne.
Warning
Faites attention à l'hébergement de votre site web, dans mon cas il est auto-hébergé donc pas de problème mais certains hébergeurs ne permettent pas la réécriture d'URL, renseignez-vous auprès de votre hébergeur
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 :
Si la réponse à la commande est que a2enmod n'est pas installé, installez locate :
Puis recherchez la commande a2enmod :
La réponse vous donnera la localisation, par exemple : /usr/sbin/a2enmod
Vous pourrez alors taper la commande suivante (à adapter en fonction de la réponse précédente) :
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 :
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Remplacez "None" par "All" puis redémarrez le serveur Apache :
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 :
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à !
