Serveur Apache HTTP Version 2.4

Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

# Module Apache mod_mime

Description: | Associe les extensions des fichiers demandés avec l'action déclenchée par ces fichiers et avec leur contenu (type MIME, langue, jeu de caractère et codage)
Statut: | Base
Identificateur de Module: | mime_module
Fichier Source: | mod_mime.c

### Sommaire

Ce module permet d'assigner des métadonnées aux contenus sélectionnés pour une réponse HTTP, en associant des modèles d'URI ou de noms de fichiers aux valeurs des métadonnées. Par exemple, les extensions de noms de fichiers définissent souvent le type de médium Internet, la langue, le jeu de caractères et le codage du contenu. Ces informations sont relayées par les messages HTTP véhiculant ces contenus, et utilisées au cours de la négociation de contenu lors de la sélection des différentes possibilités, de manière à ce que les préférences des utilisateurs soient respectées lors du choix d'un contenu à servir parmi plusieurs autres contenus. Voir `mod_negotiation` pour plus d'informations à propos de la négociation de contenu.

Les directives `AddCharset`, `AddEncoding`, `AddLanguage` et `AddType` permettent d'associer des extensions de fichiers aux métadonnées de ces fichiers. Elles définissent respectivement le jeu de caractères, le codage du contenu, la langue du contenu et le type de médium (content-type) des documents. La directive `TypesConfig` permet de spécifier un fichier qui contient lui-même des associations entre extensions et types de media.

De plus, `mod_mime` peut définir le gestionnaire et les filtres qui sont à l'origine du contenu et le traitent. Les directives `AddHandler`, `AddOutputFilter`, et `AddInputFilter` permettent de contrôler les modules ou les scripts qui vont servir le document. La directive `MultiviewsMatch` permet à `mod_negotiation` de déterminer les extensions de fichiers à inclure lors des tests de correspondances multivues.

Alors que `mod_mime` associe des métadonnées avec des extensions de fichiers, le serveur de base `core` fournit des directives permettant d'associer tous les fichiers d'un conteneur donné (par exemple `<Location>`, `<Directory>`, ou `<Files>`) avec des métadonnées particulières. Parmi ces directives, on trouve `ForceType`, `SetHandler`, `SetInputFilter`, et `SetOutputFilter`. Les directives du serveur de base l'emportent sur toute directive d'association d'extensions de noms de fichiers définie par `mod_mime`.

Notez que la modification des métadonnées d'un fichier ne modifie pas la valeur de l'en-tête `Last-Modified`. Ainsi, certaines copies de documents préalablement mises en cache peuvent encore être utilisées par un client ou un mandataire avec les anciens en-têtes. Si vous modifiez les métadonnées (langue, type de contenu, jeu de caractère ou codage), vous devez donc enregistrer une modification du fichier concerné (afin de mettre à jour sa date de dernière modification), pour être sûr que tous les visiteurs recevront le documents avec les en-têtes corrects.

### Sujets

- Fichiers avec extensions multiples
- Codage du contenu
- Jeux de caractères et langues

### Directives

### Traitement des bugs

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

### Voir aussi

- `MimeMagicFile`
- `AddDefaultCharset`
- `ForceType`
- `SetHandler`
- `SetInputFilter`
- `SetOutputFilter`

## Fichiers avec extensions multiples

Les fichiers peuvent posséder plusieurs extensions dont l'ordre est normalement sans importance. Par exemple, si le fichier `welcome.html.fr` est associé au type de contenu `text/html` et à la langue française, le fichier `welcome.fr.html` possèdera exactement les même métadonnées. Si le fichier possède plusieurs extensions associées au même type de métadonnée, c'est celle de ces extensions la plus à droite qui sera utilisée, excepté pour ce qui concerne les langues et les codages de contenu. Par exemple, si `.gif` est associé au type de médium `image/gif`, et `.html` au type de médium `text/html`, le fichier `welcome.gif.html` sera associé au type de médium `text/html`.

Les Languages et les codages de contenu sont traités de manière cumulative, car il est possible d'assigner plusieurs langues ou codages à une ressource particulière. Par exemple, le fichier `welcome.html.en.de` sera servi avec les en-têtes `Content-Language: en, de` et `Content-Type: text/html`.

Des précautions doivent être prises lorsqu'un fichier avec extensions multiples est associé à la fois à un type de médium et à un gestionnaire. En général, cela impliquera la gestion de la requête par le module associé au gestionnaire. Par exemple, si l'extension `.imap` est associée au gestionnaire `imap-file` (du module `mod_imagemap`), et si l'extension `.html` est associée au type de médium `text/html`, le fichier `world.imap.html` sera à la fois associé au gestionnaire `imap-file` et au type de médium `text/html`. Pour son traitement, c'est le gestionnaire `imap-file` qui sera utilisé, et il sera donc traité en tant que fichier imagemap.

Si vous préférez que seule la dernière partie d'un nom de fichier séparée du reste du nom par un point soit associée à une métadonnée particulière, n'utilisez pas les directives `Add*`. Par exemple, si vous souhaitez que le fichier `foo.html.cgi` soit traité en tant que script CGI, mais pas le fichier `bar.cgi.html`, alors, au lieu d'utiliser `AddHandler cgi-script .cgi`, utilisez plutôt :

### Configuration du gestionnaire en se basant seulement sur la dernière extension

    <FilesMatch "[^.]+\.cgi$">
      SetHandler cgi-script
    </FilesMatch>

## Codage du contenu

Un fichier d'un type de médium particulier peut être également codé d'une certaine manière pour simplifier sa transmission sur Internet. Alors que cela concerne en général la compression, comme `gzip`, il peut aussi s'agir de chiffrement, comme `pgp` ou d'un codage comme UUencoding, qui est conçu pour transmettre un fichier binaire sous un format ASCII (texte).

La RFC HTTP/1.1, section 14.11 stipule à ce titre :

> Le champ d'en-tête Content-Encoding de l'entité est utilisé en tant que modificateur du type de médium. Lorsqu'il est présent, sa valeur indique quels codages de contenu additionnels ont été appliqués au corps de l'entité, et ainsi quels mécanismes de décodage doivent être appliqués afin de retrouver le type de médium référencé par le champ d'en-tête Content-Type. Le codage de contenu est principalement utilisé pour permettre la compression d'un document sans perdre l'information concernant le type de médium sous-jacent.

En utilisant plusieurs extensions (voir la section ci-dessus à propos des extensions de fichiers multiples), vous pouvez indiquer qu'un fichier est d'un type, particulier, et possède aussi un codage particulier.

Considérons par exemple un fichier contenant un document Microsoft Word et compressé par pkzip pour réduire sa taille. Si l'extension `.doc` est associée au type de fichier Microsoft Word, et si l'extension `.zip` est associée au codage de fichier pkzip, alors le fichier `Resume.doc.zip` sera identifié comme document Word compressé par pkzip.

Apache joint un en-tête `Content-encoding` à la ressource afin d'informer le navigateur client à propos de la méthode de codage.

    Content-encoding: pkzip

## Jeux de caractères et langues

En plus du type de fichier et du codage, un autre élément important d'information est la langue dans laquelle le document est écrit, et avec quel jeu de caractères le contenu du fichier doit être affiché. Par exemple, un document peut être écrit en alphabet vietnamien ou cyrillique, et doit être affiché en conséquence. Cette information est également transmise via des en-têtes HTTP.

Les jeu de caractères, langue, codage et type MIME sont tous utilisés au cours du processus de négociation de contenu (voir `mod_negotiation`) afin de déterminer quel document servir au client, lorsque plusieurs choix sont possibles en fonction du jeu de caractères, de la langue, du codage ou du type MIME. Toutes les associations d'extensions de noms de fichiers créées via les directives `AddCharset`, `AddEncoding`, `AddLanguage` et `AddType` (ainsi que les associations d'extensions listées dans le fichier défini par la directive `MimeMagicFile`), participent à ce processus de sélection. Les extensions de noms de fichiers qui n'ont été associés que par des directives `AddHandler`, `AddInputFilter` ou `AddOutputFilter`, peuvent être incluses ou exclues du processus de sélection en utilisant la directive `MultiviewsMatch`.

### Jeu de caractères

Pour transmettre cette information supplémentaire, Apache peut ajouter un en-tête `Content-Language`, afin de spécifier la langue dans laquelle le document est écrit, et peut ajouter des informations additionnelles à l'en-tête `Content-Type` pour indiquer le jeu de caractères particulier qui doit être utilisé pour restituer correctement le document.

`Content-Language: en, fr Content-Type: text/plain; charset=ISO-8859-1`

La langue est spécifiée via son abréviation en deux lettres. Le `jeu de caractères` est le nom du jeu de caractères particulier qui doit être utilisé.

## Directive AddCharset

Description: | Associe les extensions de noms de fichiers spécifiées au jeu de caractères spécifié
Syntaxe: | `AddCharset jeu-car extension [extension] ...`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `AddCharset` permet d'associer les extensions de noms de fichiers spécifiées au jeu de caractères spécifié (le nom enregistré sur l'Internet d'un codage de caractères donné). jeu-car est le paramètre jeu de caractères du type de médium pour les ressources dont le nom de fichier contient extension. Cette association est ajoutée à toutes les autres déjà en vigueur, et écrase toute association préexistante pour la même extension.

### Exemple

    AddLanguage ja .ja
    AddCharset EUC-JP .euc
    AddCharset ISO-2022-JP .jis
    AddCharset SHIFT_JIS .sjis

Avec cet exemple, le document `xxxx.ja.jis` sera traité en tant que document japonais dont le jeu de caractère est `ISO-2022-JP` (idem pour le document `xxxx.jis.ja`). La directive `AddCharset` sert à la fois à informer le client sur le codage des caractères du document afin que ce dernier puisse être interprété et affiché correctement, et à la négociation de contenu, au cours de laquelle le serveur décide lequel parmi plusieurs documents possibles il renvoie au client en fonction des préférences de ce dernier en matière de jeu de caractères.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial. Les noms de fichiers peuvent posséder plusieurs extensions, et l'argument extension sera comparé à chacune d'entre elles.

### Voir aussi

- `mod_negotiation`
- `AddDefaultCharset`

## Directive AddEncoding

Description: | Associe les extensions de noms de fichiers données au type de codage spécifié
Syntaxe: | `AddEncoding codage extension [extension] ...`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `AddEncoding` permet d'associer les extensions de noms de fichiers données au codage de contenu HTTP spécifié. codage est le codage de contenu HTTP à ajouter à la valeur du champ d'en-tête Content-Encoding pour les documents possédant l'extension spécifiée. Cette association est ajoutée à toutes les autres déjà en vigueur, et écrase toute association préexistante pour la même extension.

### Exemple

    AddEncoding x-gzip .gz
    AddEncoding x-compress .Z

Avec cet exemple, les noms de fichiers possédant l'extension `.gz` seront marqués comme codés à l'aide du codage `x-gzip`, et les noms de fichiers possédant l'extension `.Z` comme codés avec `x-compress`.

Les clients anciens n'acceptent que `x-gzip` et `x-compress`, bien que les standards stipulent qu'ils sont respectivement équivalents à `gzip` et `compress`. Apache effectue ses comparaisons de codages de contenu en ignorant tout préfixe `x-`. Lorsqu'il répond avec un codage, Apache utilise l'une ou l'autre forme (c'est à dire `x-foo` ou `foo`) selon les besoins du client. Si le client n'a pas besoin d'une forme particulière, Apache utilisera la forme employée par la directive `AddEncoding`. Pour résumer, vous devez toujours utiliser `x-gzip` et `x-compress` pour ces deux codages spécifiques. Certains codages plus récents, comme `deflate`, doivent être spécifiés sans le préfixe `x-`.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial. Les noms de fichiers peuvent posséder plusieurs extensions, et l'argument extension sera comparé à chacune d'entre elles.

## Directive AddHandler

Description: | Associe les extensions de noms de fichiers données au gestionnaire spécifié
Syntaxe: | `AddHandler nom-gestionnaire extension [extension] ...`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

Les fichiers dont le nom a pour extension extension seront servis par le nom-gestionnaire spécifié. Cette association est ajoutée à toutes les autres déjà en vigueur, et écrase toute association préexistante pour la même extension. Par exemple, pour associer les scripts CGI avec l'extension de fichier `.cgi`, vous pouvez utiliser :

    AddHandler cgi-script .cgi

Une fois cette ligne insérée dans votre fichier httpd.conf, tout fichier possédant l'extension `.cgi` sera traité en tant que programme CGI.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial. Les noms de fichiers peuvent posséder plusieurs extensions, et l'argument extension sera comparé à chacune d'entre elles.

### Voir aussi

- `SetHandler`

## Directive AddInputFilter

Description: | Associe les extensions de noms de fichiers aux filtres spécifiés qui traiteront les requêtes clients
Syntaxe: | `AddInputFilter filtre[;filtre...] extension [extension] ...`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `AddInputFilter` permet d'associer l'extension de nom de fichier extension aux filtres spécifiés qui traiteront les requêtes clients et les entrées POST à leur réception par le serveur. Ceci s'ajoute à toute définition de filtre préexistante, y compris la directive `SetInputFilter`. Cette association est ajoutée à toutes les autres déjà en vigueur, et écrase toute association préexistante pour la même extension.

Si plusieurs filtres sont spécifiés, ils doivent être séparés par des points-virgules et inscrits dans l'ordre selon lequel ils devront traiter le contenu. L'argument filtre est insensible à la casse.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial. Les noms de fichiers peuvent posséder plusieurs extensions, et l'argument extension sera comparé à chacune d'entre elles.

### Voir aussi

- `RemoveInputFilter`
- `SetInputFilter`

## Directive AddLanguage

Description: | Associe l'extension de nom de fichier donnée à la langue spécifié
Syntaxe: | `AddLanguage symbole-langue extension [extension] ...`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `AddLanguage` permet d'associer l'extension de nom de fichier donnée à la langue spécifiée. Les fichiers dont l'extension correspond à la valeur de l'argument extension se voient attribuer la valeur de l'argument symbole-langue comme en-tête HTTP Content-Language en accord avec les identifiants de langues définis par la RFC 3066. Cette directive l'emporte sur toute association préexistante pour la même extension.

### Exemple

    AddEncoding x-compress .Z
    AddLanguage en .en
    AddLanguage fr .fr

Avec cet exemple, le document `xxxx.en.Z` sera traité en tant que document compressé de langue anglaise (idem pour le document `xxxx.Z.en`). Bien que la langue soit fournie au client, le navigateur n'utilise habituellement pas cette information. La directive `AddLanguage` est principalement utilisée au cours de la négociation de contenu, où le serveur choisit d'envoyer un document parmi plusieurs documents possibles en fonction de la préférence du client en matière de langue.

Si une extension fait l'objet de plusieurs associations de langues, c'est la dernière qui sera utilisée. Ainsi, dans le cas suivant,

    AddLanguage en .en
    AddLanguage en-gb .en
    AddLanguage en-us .en

les documents possédant l'extension `.en` seront traités en tant que documents de langue `en-us`.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial. Les noms de fichiers peuvent posséder plusieurs extensions, et l'argument extension sera comparé à chacune d'entre elles.

### Voir aussi

- `mod_negotiation`

## Directive AddOutputFilter

Description: | Associe les extensions de noms de fichiers aux filtres spécifiés qui traiteront les réponses en provenance du serveur
Syntaxe: | `AddOutputFilter filtre[;filtre...] extension [extension] ...`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `AddOutputFilter` permet d'associer l'extension de nom de fichier définie par l'argument extension aux filtres qui traiteront les réponses en provenance du serveur avant de les envoyer au client. Ces filtres s'ajoutent à tout filtre défini par d'autres directives comme `SetOutputFilter` et `AddOutputFilterByType`. Cette association est fusionnée avec toute autre association en vigueur, et l'emporte sur toute association préexistante pour la même extension.

Avec l'exemple suivant, tous les fichiers `.shtml` seront traités en tant qu'inclusions côté serveur (SSI), et la sortie sera compressée à l'aide du module `mod_deflate`.

    AddOutputFilter INCLUDES;DEFLATE shtml

Si plusieurs filtres sont spécifiés, ils doivent être séparés par des points-virgules et inscrits dans l'ordre selon lequel il devront traiter le contenu. L'argument filtre est insensible à la casse.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial. Les noms de fichiers peuvent posséder plusieurs extensions, et l'argument extension sera comparé à chacune d'entre elles.

Notez que toute définition de filtres via la directive `AddOutputFilter` remplace toutes les définitions précédentes effectuées via cette même directive.

    # Filtre spécifié "DEFLATE"
    AddOutputFilter DEFLATE shtml
    <Location "/foo">
      # Filtre spécifié "INCLUDES", remplace "DEFLATE"
      AddOutputFilter INCLUDES shtml
    </Location>
    <Location "/bar">
      # Filtre spécifié "INCLUDES;DEFLATE", remplace "DEFLATE"
      AddOutputFilter INCLUDES;DEFLATE shtml
    </Location>
    <Location "/bar/baz">
      # Filtre spécifié "BUFFER", remplace "INCLUDES;DEFLATE"
      AddOutputFilter BUFFER shtml
    </Location>
    <Location "/bar/baz/buz">
      # Pas de filtre spécifié, suppression de "BUFFER"
      RemoveOutputFilter shtml
    </Location>

### Voir aussi

- `RemoveOutputFilter`
- `SetOutputFilter`

## Directive AddType

Description: | Associe les extensions de noms de fichiers au type de contenu spécifié
Syntaxe: | `AddType type-médium extension [extension] ...`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `AddType` permet d'associer les extensions de noms de fichiers données au type de contenu spécifié. type-médium est le Type MIME à utiliser pour les fichiers dont le nom possède l'extension extension. Cette association s'ajoute à toute autre association en vigueur, et l'emporte sur toute association préexistante pour la même extension.

Plutôt que d'éditer directement le fichier `TypesConfig`, il est recommandé d'utiliser la directive `AddType` pour ajouter de nouveaux types de médias.

### Exemple

    AddType image/gif .gif

Ou, pour spécifier plusieurs extensions dans une seule directive :

### Exemple

    AddType image/jpeg jpeg jpg jpe

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial. Les noms de fichiers peuvent posséder plusieurs extensions, et l'argument extension sera comparé à chacune d'entre elles.

Il est possible d'obtenir un effet similaire à celui de la directive `LanguagePriority` du module `mod_negotiation` en qualifiant un type de média avec `qs` :

### Exemple

    AddType application/rss+xml;qs=0.8 .xml

Ceci peut s'avérer utile dans certaines situations, par exemple lorsqu'un client qui a ajouté un en-tête `Accept: */*` à sa requête n'est pas en mesure de traiter le contenu renvoyé par le serveur.

À la base, cette directive configure le type de contenu généré pour les fichiers statiques servis à partir du système de fichiers. Dans le cas des ressources autres que les fichiers statiques pour lesquelles le générateur de la réponse spécifie en général un Content-Type, cette directive n'a aucun effet.

### Note

Si aucun gestionnaire n'est explicitement défini pour une requête, le type de contenu spécifié sera aussi utilisé comme nom du gestionnaire.

Lorsqu'aucune directive comme `SetHandler` ou `AddHandler` ne s'applique à une requête, le nom de gestionnaire interne normalement défini par une de ces directives est en fait défini par le type de contenu spécifié par la présente directive.

Pour des raisons historiques, certains modules tiers comme mod_php peuvent adopter ce type de comportement pour prendre en compte la requête concernée.

Il est conseillé d'éviter les configurations qui reposent sur de tels types "synthétiques". En outre, les configurations qui limitent l'accès aux directives `SetHandler` ou `AddHandler` doivent aussi limiter l'accès à la directive AddType.

### Voir aussi

- `ForceType`
- `mod_negotiation`

## Directive DefaultLanguage

Description: | Définit un symbole de langue par défaut à affecter au champ d'en-tête Content-Language pour toutes les ressources dans le contexte courant auxquelles aucun symbole de langue n'a été associé.
Syntaxe: | `DefaultLanguage symbole-langue`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `DefaultLanguage` permet d'indiquer à Apache que toutes les ressources du contexte courant (par exemple, toutes les ressources concernées par le conteneur `<Directory>` courant) qui ne possèdent pas d'extension de langue explicite (comme `.fr` ou `.de` tel que défini par la directive `AddLanguage`), verront leur en-tête HTTP Content-Language affecté de la langue symbole-langue. Ceci permet de marquer des arborescences de répertoires entières comme contenant des documents en français, par exemple, sans avoir à renommer chaque fichier. Notez qu'à la différence de l'utilisation des extensions pour spécifier des langues, `DefaultLanguage` ne permet de spécifier qu'une seule langue.

Si aucune directive `DefaultLanguage` n'est en vigueur, et si un fichier ne possède pas d'extension configurée par la directive `AddLanguage`, aucun champ d'en-tête Content-Language ne sera généré.

### Exemple

    DefaultLanguage en

### Voir aussi

- `mod_negotiation`

## Directive ModMimeUsePathInfo

Description: | Indique à `mod_mime` de traiter les éléments de `path_info` en tant que parties du nom de fichier
Syntaxe: | `ModMimeUsePathInfo On|Off`
Défaut: | `ModMimeUsePathInfo Off`
Contexte: | répertoire
Statut: | Base
Module: | mod_mime

La directive `ModMimeUsePathInfo` permet de combiner le nom de fichier avec la partie `path_info` de l'URL pour appliquer les directives `mod_mime` à la requête. La valeur par défaut est `Off` - situation dans laquelle l'élément `path_info` est ignoré.

L'utilisation de cette directive est conseillée si vous utilisez un système de fichiers virtuel.

### Exemple

    ModMimeUsePathInfo On

Considérons une requête pour `/index.php/foo.shtml`, `mod_mime` ne traitera pas la requête entrante comme `/index.php/foo.shtml` et les directives comme `AddOutputFilter INCLUDES .shtml` ajouteront le filtre `INCLUDES` à la requête. Si la directive `ModMimeUsePathInfo` n'est pas définie, le filtre `INCLUDES` ne sera pas ajouté. Le fonctionnement sera identique dans le cas des chemins virtuels, tels que ceux définis par la directive `<Location>`

### Voir aussi

- `AcceptPathInfo`

## Directive MultiviewsMatch

Description: | Les types de fichiers qui seront inclus lors d'une recherche de correspondance de fichier avec les vues multiples (MultiViews)
Syntaxe: | `MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers [Handlers|Filters]`
Défaut: | `MultiviewsMatch NegotiatedOnly`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `MultiviewsMatch` permet trois comportements différents pour la fonctionnalité Multiviews du module mod_negotiation. Les vues multiples permettent d'associer une requête pour un fichier, par exemple `index.html`, à toute extension négociée s'ajoutant à la requête de base, par exemple `index.html.en`, `index.html.fr`, ou `index.html.gz`.

L'option `NegotiatedOnly` implique que toute extension s'ajoutant au nom de base doit correspondre à une extension de `mod_mime` reconnue pour la négociation de contenu, par exemple Charset, Content-Type, Language, ou Encoding. C'est la valeur d'option par défaut, et la contrainte la plus stricte dont les effets de bord inattendus sont les moins nombreux.

Pour inclure des extensions associées avec des gestionnaires et/ou des filtres, définissez la directive `MultiviewsMatch` avec les mots-clés `Handlers`, `Filters`, ou les deux. Si tous les autres facteurs sont égaux, c'est le fichier de plus petite taille qui sera servi ; par exemple, si le choix doit s'opérer entre `index.html.cgi` de 500 octets et `index.html.pl` de 1000 octets, c'est le fichier `.cgi` qui l'emportera dans cet exemple. Les utilisateurs de fichiers `.asis` auront avantage à utiliser l'option Handler, si les fichiers `.asis` sont associés au gestionnaire `asis-handler`.

Vous pouvez enfin autoriser l'association de toute extension avec l'option `Any`, même si `mod_mime` ne reconnaît pas l'extension. Ceci peut conduire à des résultats imprévisibles, comme l'envoi de fichiers .old ou .bak contrairement aux souhaits du webmaster.

Par exemple, la configuration suivante va permettre l'inclusion des extensions associées aux gestionnaires et aux filtres dans les vues multiples, tout en excluant les fichiers de type inconnu :

    MultiviewsMatch Handlers Filters

L'utilisation de la directive `MultiviewsMatch` dans une section `<Location>` ou `<LocationMatch>` n'est pas permise.

### Voir aussi

- `Options`
- `mod_negotiation`

## Directive RemoveCharset

Description: | Supprime toute association de jeu de caractères pour un ensemble d'extensions de noms de fichiers
Syntaxe: | `RemoveCharset extension [extension] ...`
Contexte: | serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `RemoveCharset` permet de supprimer toute association de jeu de caractères pour les fichiers dont les noms possèdent les extensions spécifiées. Ceci permet, au sein des fichiers `.htaccess`, d'annuler toute association héritée du répertoire parent ou de la configuration du serveur pour un répertoire particulier.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial.

### Exemple

    RemoveCharset .html .shtml

## Directive RemoveEncoding

Description: | Supprime toute association de codage de contenu pour un ensemble d'extensions de noms de fichiers
Syntaxe: | `RemoveEncoding extension [extension] ...`
Contexte: | serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `RemoveEncoding` permet de supprimer toute association de codage pour les fichiers dont les noms possèdent les extensions spécifiées. Ceci permet, au sein des fichiers `.htaccess`, d'annuler toute association héritée du répertoire parent ou de la configuration du serveur pour un répertoire particulier. Voici un exemple d'utilisation de cette directive :

### /foo/.htaccess:

    AddEncoding x-gzip .gz
    AddType text/plain .asc
    <Files "*.gz.asc">
        RemoveEncoding .gz
    </Files>

Avec cette configuration, le fichier `foo.gz` sera marqué comme codé avec gzip, mais `foo.gz.asc` sera marqué comme fichier texte non codé.

### Note

Les directives `RemoveEncoding` étant traitées après toute directive `AddEncoding`, il est possible qu'elles annulent les effets de ces dernières si les deux apparaissent dans la configuration du même répertoire.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial.

## Directive RemoveHandler

Description: | Supprime toute association de gestionnaire à un ensemble d'extensions de noms de fichiers
Syntaxe: | `RemoveHandler extension [extension] ...`
Contexte: | serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `RemoveHandler` permet de supprimer toute association de gestionnaire à des fichiers dont le nom possède l'extension donnée. Ceci permet, au sein des fichiers `.htaccess`, d'annuler toute association héritée du répertoire parent ou de la configuration du serveur pour un répertoire particulier. Voici un exemple d'utilisation de cette directive :

### /foo/.htaccess:

    AddHandler server-parsed .html

### /foo/bar/.htaccess:

    RemoveHandler .html

Avec cette dernière ligne, les fichiers `.html` du répertoire `/foo/bar` seront traités en tant que fichiers normaux, au lieu d'être traités en tant que candidats à l'interprétation (voir le module `mod_include` module).

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial.

## Directive RemoveInputFilter

Description: | Supprime toute association de filtre en entrée à un ensemble d'extensions de noms de fichiers
Syntaxe: | `RemoveInputFilter extension [extension] ...`
Contexte: | serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `RemoveInputFilter` permet de supprimer toute association de filtre en entrée à des fichiers dont le nom possède l'extension donnée. Ceci permet, au sein des fichiers `.htaccess`, d'annuler toute association héritée du répertoire parent ou de la configuration du serveur pour un répertoire particulier.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial.

### Voir aussi

- `AddInputFilter`
- `SetInputFilter`

## Directive RemoveLanguage

Description: | Supprime toute association de langue à un ensemble d'extensions de noms de fichiers
Syntaxe: | `RemoveLanguage extension [extension] ...`
Contexte: | serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `RemoveLanguage` permet de supprimer toute association de langue à des fichiers dont le nom possède l'extension donnée. Ceci permet, au sein des fichiers `.htaccess`, d'annuler toute association héritée du répertoire parent ou de la configuration du serveur pour un répertoire particulier.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial.

## Directive RemoveOutputFilter

Description: | Supprime toute association de filtre en sortie à un ensemble d'extensions de noms de fichiers
Syntaxe: | `RemoveOutputFilter extension [extension] ...`
Contexte: | serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `RemoveOutputFilter` permet de supprimer toute association de filtre en sortie à des fichiers dont le nom possède l'extension donnée. Ceci permet, au sein des fichiers `.htaccess`, d'annuler toute association héritée du répertoire parent ou de la configuration du serveur pour un répertoire particulier.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial.

### Exemple

    RemoveOutputFilter shtml

### Voir aussi

- `AddOutputFilter`

## Directive RemoveType

Description: | Supprime toute association de type de contenu à un ensemble d'extensions de noms de fichiers
Syntaxe: | `RemoveType extension [extension] ...`
Contexte: | serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Base
Module: | mod_mime

La directive `RemoveType` permet de supprimer toute association de type de médium à des fichiers dont le nom possède l'extension donnée. Ceci permet, au sein des fichiers `.htaccess`, d'annuler toute association héritée du répertoire parent ou de la configuration du serveur pour un répertoire particulier. Voici un exemple d'utilisation de cette directive :

### /foo/.htaccess:

    RemoveType .cgi

Cette ligne aura pour effet de supprimer tout traitement spécifique des fichiers `.cgi` dans le répertoire `/foo/` et ses sous-répertoires, et les réponses contenant ce type de fichier ne possèderont pas de champ d'en-tête HTTP Content-Type.

### Note

Les directives `RemoveType` sont traitées après toutes les directives `AddType`, et il est possible que les effets de ces dernières soient annulés si les deux types de directives sont présents au sein de la configuration du même répertoire.

L'argument extension est insensible à la casse et peut être spécifié avec ou sans le point initial.

## Directive TypesConfig

Description: | Le chemin du fichier `mime.types`
Syntaxe: | `TypesConfig chemin-fichier`
Défaut: | `TypesConfig conf/mime.types`
Contexte: | configuration du serveur
Statut: | Base
Module: | mod_mime

La directive `TypesConfig` permet de définir le chemin du fichier de configuration des types de média. L'argument chemin-fichier est un chemin relatif au répertoire défini par la directive `ServerRoot`. Ce fichier contient la liste des associations par défaut des extensions de noms de fichiers aux types de contenus. La plupart des administrateurs utilisent le fichier `mime.types` fourni par leur système d'exploitation, qui associe les extensions de noms de fichiers courantes à la liste officielle des types de média enregistrés par l'IANA et maintenue à http://www.iana.org/assignments/media-types/index.html, ainsi qu'un grand nombre de types non officiels. Ce fichier permet de simplifier le fichier `httpd.conf` en fournissant la majorité des définitions de types de média, et ses définitions peuvent être écrasées par des directives `AddType`, selon les besoins. Il est déconseillé de modifier le contenu du fichier `mime.types` car il peut être remplacé lors d'une mise à jour du serveur.

Le fichier contient des lignes dont le format est identique à celui des arguments d'une directive `AddType` :

`type-médium [extension] ...`

Les extensions sont insensibles à la casse. Les lignes vides et les lignes commençant par un dièse (`#`) sont ignorées. Les lignes vides servent à compléter le fichier mime.types. Apache httpd peut encore déterminer ces types via le module `mod_mime_magic`.

Merci de ne pas soumettre de requêtes au Projet de Serveur HTTP Apache pour ajouter une entrée dans le fichier `mime.types` fourni, sauf si : 1) le type de médium est déjà enregistré à l'IANA 2) et si l'extension est largement acceptée et ne provoque pas de conflits d'extensions entre les différentes plate-formes. Les requêtes du type `catégorie/x-sous-type` seront systématiquement rejetées, ainsi que toute nouvelle extension de deux lettres, car elle ont de fortes chances d'entrer en conflit par la suite avec les inombrables langues préexistantes et les espaces de nommage des jeux de caractères.

### Voir aussi

- `mod_mime_magic`