Apprendre .htaccess : Négociation de Contenu

La négociation de contenu est un mécanisme du protocole HTTP qui permet de proposer une même ressource (identifiée par son URI) sous plusieurs formes différentes.

Icône de calendrier
Avancé
7 chapitres

Qu’est-ce que la négociation de contenu ?

Apache HTTPD supporte la négociation de contenu telle qu’elle est décrite dans la spécification HTTP/1.1.

Avec la négociation de contenu, le serveur peut choisir la meilleure représentation d’une ressource en fonction des préférences du navigateur pour ce qui concerne le type de media, les langages, le jeu de caractères et son encodage.

Il implémente aussi quelques fonctionnalités pour traiter de manière plus intelligente les requêtes en provenance de navigateurs qui envoient des informations de négociation incomplètes.

La négociation de contenu est assurée par le module mod_negotiation qui est compilé par défaut dans le serveur.

Lecture de fichiers de substitution avec MultiViews

Si nous avons sur notre serveur web un fichier nommé 📄 config.php à la racine et que nous configurons une règle de réécriture dans notre fichier 📄 .htaccess principal pour une route nommée config/, nous aurions un problème, car le serveur chargera automatiquement 📄 config.php.

Ces règles de réécriture étant bien souvent présentes dans le cas d’applications MVC où nous routons l’application en fonction d’URLs qui ne correspondent pas aux fichiers du système, il est donc préférable de désactiver l’option nommée MultiViews.

.htaccess
copié !
# Empêche la lecture de fichiers de substitution
Options All -MultiViews

MultiViews peut provoquer la lecture de fichiers de substitution, correspondant de manière incomplète au nom de ceux présents sur le serveur.