Serveur HTTP Apache Version 2.4

Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

# Module Apache mod_speling

Description: | Tente de corriger les erreurs de casse dans les URLs ou les fautes de frappe mineures.
Statut: | Extension
Identificateur de Module: | speling_module
Fichier Source: | mod_speling.c

### Sommaire

Il arrive que des requêtes pour des documents ne puissent pas être traitées par le serveur Apache de base à cause d'une erreur de frappe ou de casse. Ce module permet de traiter ce problème en essayant de trouver un document correspondant, même lorsque tous les autres modules y ont renoncé. Sa méthode de travail consiste à comparer chaque nom de document du répertoire demandé avec le document de la requête sans tenir compte de la casse, et en acceptant jusqu'à une erreur (insertion, omission, inversion de caractère ou caractère erroné). Une liste de tous les documents qui correspondent est alors élaborée en utilisant cette stratégie. Ce module traite aussi les erreurs dans les extensions de fichiers.

Si après le parcours du répertoire,

- aucun document correspondant n'a été trouvé, Apache procèdera normalement et renverra une erreur (`404 - document not found`).
- un seul document correspondant pratiquement à la requête a été trouvé, celui-ci est renvoyé sous la forme d'une réponse de redirection (`301 - Moved Permanently`).
- plusieurs documents pouvant correspondre ont été trouvés, une liste des documents est envoyée au client afin que ce dernier puisse sélectionner le document correct (`300 - Multiple Choices`).

### Directives

### Traitement des bugs

- Journal des modifications de httpd
- Problèmes connus
- Signaler un bug

## Directive CheckBasenameMatch

Description: | Vérifie aussi la correspondance des fichiers, même avec des extensions différentes
Syntaxe: | `CheckBasenameMatch on|off`
Défaut: | `CheckBasenameMatch On`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | Options
Statut: | Extension
Module: | mod_speling
Compatibilité: | Disponible à partir de la version 2.4.50 du serveur HTTP Apache

Lorsqu'elle est définie, cette directive étend le processus de correction orthographique à l'extension des noms de fichiers. Par exemple, un fichier de nom `foo.gif` sera pris en compte par une requête pour `foo` ou `foo.jpg`. Ceci peut s'avérer particulièrement utile en conjonction avec les MultiViews.

## Directive CheckCaseOnly

Description: | Limite l'action du module aux corrections de majuscules
Syntaxe: | `CheckCaseOnly on|off`
Défaut: | `CheckCaseOnly Off`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | Options
Statut: | Extension
Module: | mod_speling

Lorsqu'elle est définie à "on", cette directive permet de limiter l'action du module aux inversions majuscule/minuscule. Les autres corrections éventuelles ne seront effectuées que si la directive `CheckBasenameMatch` est elle aussi définie.

## Directive CheckSpelling

Description: | Active le module de correction
Syntaxe: | `CheckSpelling on|off`
Défaut: | `CheckSpelling Off`
Contexte: | configuration globale, serveur virtuel, répertoire, .htaccess
Surcharges autorisées: | Options
Statut: | Extension
Module: | mod_speling

Cette directive permet d'activer ou de désactiver le module de correction. Lorsqu'il est activé, rappelez-vous que :

- le parcours du répertoire nécessaire à la correction aura un impact sur les performances du serveur lorsque de nombreuses corrections devront être effectuées au même moment.
- l'arborescence ne doit pas contenir de documents sensibles qui pourraient être considérés par erreur comme correspondant à la requête.
- le module ne corrige pas les noms d'utilisateur mal orthographiés (comme dans `http://mon.serveur/~apahce/`), mais seulement les noms de fichiers ou de répertoires.
- les corrections s'appliquent strictement aux fichiers existants, si bien qu'une requête pour `<Location /status>` pour être traitée de manière incorrecte comme une requête pour le fichier négocié "`/stats.html`".

`mod_speling` ne doit pas être activé pour des répertoires où DAV l'est aussi, car il va essayer de "corriger" les noms des ressources nouvellement créées en fonction des noms de fichiers existants ; par exemple, lors du chargement d'un nouveau document `doc43.html`, il est possible qu'il redirige vers un document existant `doc34.html`, ce qui ne correspond pas à ce que l'on souhaite.