# Apache模块 mod_mime
| [说明](#calibre_link-11) | 根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码) |
| --- | --- |
| [状态](#calibre_link-12) | 基本(B) |
| [模块名](#calibre_link-13) | mime_module |
| [源文件](#calibre_link-14) | mod_mime.c |
### 概述
本模块通过文件的扩展名将不同的"元信息"与文件关联起来。元信息在文档的文件名与文档的MIME类型、语言、字符集、编码方式之间建立关联。最终元信息会传送到服务器并参与内容协商,这样最终在考虑用户指定参数的基础上,在几个可能的文件里选择一个提供服务。关于[内容协商](#calibre_link-258)的更多信息,请参阅`mod_negotiation`模块。
`AddCharset`, `AddEncoding`, `AddLanguage`, `AddType`指令都可以用于在文件的扩展名与文件的元信息之间建立映射关系。它们分别指明了文档的字符集、编码方式、语言、[MIME类型](#calibre_link-223 "see glossary")(内容类型)。指令`TypesConfig`用来指定一个文件,它也包含了扩展名到MIME类型的映射关系。
另外,`mod_mime`还可以定义[处理器](#calibre_link-253)和[过滤器](#calibre_link-15)来生成或处理信息。指令`AddHandler`, `AddOutputFilter`, `AddInputFilter`控制了提供文档的模块或脚本的运作方式。`MultiviewsMatch`指令设定`mod_negotiation`模块在尝试Multiview匹配时,如何处理文件扩展名。
当`mod_mime`模块在元信息与文件的扩展名之间建立映射以后,`core`提供了一组指令用来建立某个给定范围内(也就是`<Location>`, `<Directory>`, `<Files>`)所有相关文件与特定的元信息之间的关联。这些指令包括`ForceType`, `SetHandler`, `SetInputFilter`, `SetOutputFilter` 。`core`的指令会覆盖任何在`mod_mime`模块中定义的文件扩展名映射。
注意,改变一个文件的元信息,不会改变`Last-Modified`头的值。因此,以前被缓存的副本可能还会被用户或代理服务器使用。如果你改变了元信息(语言、内容类型、字符集、编码方式),你需要"触及"所有相关文件(更新他们的最后修改时间),以保证所有的访问者都收到正确的内容标题。
## 带多扩展名的文件
文件可以有多个扩展名,这些扩展名的顺序_一般情况_下是无关紧要的。例如:如果文件`welcome.html.fr`被映射为内容类型是`text/html` 、语言是法语的话,文件`welcome.fr.html`将被映射为完全相同的内容。如果一个以上的扩展名映射到同种类型的元信息上,那么将使用最右边的那个。比如:`.gif`的[MIME类型](#calibre_link-223 "see glossary")是`image/gif` 、`.html`的[MIME类型](#calibre_link-223 "see glossary")是`text/html` ,那么`welcome.gif.html`的[MIME类型](#calibre_link-223 "see glossary")将是`text/html` 。
[语言](#calibre_link-345)和[内容编码](#calibre_link-346)会按照积累的方式处理,因为一个文件可以被指定为多种语言或编码。因此,`welcome.html.en.de`文件将会按照`Content-Language: en, de`和`Content-Type: text/html`发送。
在处理带多个扩展名的文件并且这些扩展名同时关联[MIME类型](#calibre_link-223 "see glossary")和处理器时,要特别小心。这种情况下通常是由与处理器相关的模块来处理得到结果。比如,文件扩展名`.imap`(通过`mod_imagemap`模块)与`imap-file`处理器相关联,同时,`.html`文件扩展名的[MIME类型](#calibre_link-223 "see glossary")是`text/html` ,那么文件`world.imap.html`将同时与`imap-file`处理器和`text/html`MIME类型`模块处理的图像映射文件。
## 内容编码
一个具有特定MIME类型的文件能够用一种特定的方法进行额外的编码,以简化它在互联网上的传输。这通常指的是压缩,比如`gzip` ;也可以是加密,例如`pgp` ;还可以是像UUencoding那样的编码,UUencoding是用来在ASCII(文本)格式的文件里,传输二进制文件的编码方式。
[HTTP/1.1 RFC](http://www.ietf.org/rfc/rfc2616.txt)第14.11节是这样解释的:
> 实体头的"Content-Encoding"域是媒体类型的修饰符。如果存在,它的值指明了对实体本身进行额外编码的方式,以及为了得到"Content-Type"头所参照的媒体类型而必须采用的解码机制。"Content-Encoding"主要用来允许一个文件在不破坏它底层媒体类型的基础上,进行压缩。
通过使用一种以上的文件扩展名(参见上面关于[带多扩展名的文件](#calibre_link-347)一节),你可以指定文件是一种特定的_类型_,还可以同时指定它特定的_编码方式_。
例如,你有一个文件,它是Microsoft Word文档,同时为了减小它的大小,它还被压缩了。如果`.doc`扩展名表示Microsoft Word文件类型,而`.zip`扩展名表示pkzip文件编码方式,那么文件`Resume.doc.zip`就会被认出是一个用pkzip压缩过的Word文档。
Apache把一个`Content-encoding`头和请求的资源一起发送,以便告诉浏览器资源编码的方式。
```
Content-encoding: pkzip
```
## 字符集和语言
除了文件类型和文件编码方式外,还有一个重要的信息是文件的语言以及文件显示时的字符集。例如一个文档可能是用越南语或古斯拉夫语写的,并且也应该显示成这种语言。这样的信息也要在HTTP头里进行传输。
字符集、语言、编码方式、内容类型等信息都是用在内容协商(参阅`mod_negotiation`模块)处理过程中的。它们决定了当许多包含了不同的字符集、语言、编码方式、内容类型的文档都存在时,具体将哪个文档返回给客户端。所有由`AddCharset`, `AddEncoding`, `AddLanguage`, `AddType`指令定义的文件扩展名关联(还有在`MimeMagicFile`指令中列出的文件扩展名)都参与了这个选择过程。使用`AddHandler`, `AddInputFilter`, `AddOutputFilter`指令建立的关联,可以用`MultiviewsMatch`指令来决定参与或不参与匹配。
### 字符集
为了传递更深层次的信息,Apache在传送一个`Content-Language`头以指定文档语言的基础上,还在随后的`Content-Type`头中指明了具体的字符集,以便更精确地描述这一信息。
```
Content-Language: en, fr
Content-Type: text/plain; charset=ISO-8859-1
```
语言的标识是这个语言名字的二字母缩写。`charset`是使用的字符集的精确名字。
## AddCharset 指令
| [说明](#calibre_link-18) | 在给定的文件扩展名与特定的字符集之间建立映射 |
| --- | --- |
| [语法](#calibre_link-19) | `AddCharset charset extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
`AddCharset`指令在特定的文件扩展名与特定的字符集之间建立映射。charset是以extension为扩展名的文件的[MIME字符集参数](http://www.iana.org/assignments/character-sets)。这个映射关系会强制添加在所有现存的映射关系上,并覆盖所有现存的extension扩展名映射。
### 示例
```
AddLanguage ja .ja
AddCharset EUC-JP .euc
AddCharset ISO-2022-JP .jis
AddCharset SHIFT_JIS .sjis
```
有了以上定义以后,文档`xxxx.ja.jis`会被当成是使用字符集`ISO-2022-JP`的日文文档(文档`xxxx.jis.ja`也一样)。`AddCharset`指令除了用于通知客户端文档的字符集编码方式以便正确地翻译和显示以外,还用于[内容协商](#calibre_link-258)(根据用户的优先选择信息,从几个文档中选择一个返回给用户)。
extension参数是大小写无关的,并且可以带或不带前导点。
### 参见
* `mod_negotiation`
* `AddDefaultCharset`
## AddEncoding 指令
| [说明](#calibre_link-18) | 在文件扩展名与特定的编码方式之间建立映射关系 |
| --- | --- |
| [语法](#calibre_link-19) | `AddEncoding MIME-enc extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
`AddEncoding`指令在文件扩展名与特定的编码方式之间建立映射关系。指令定义以extension为扩展名的文件是由MIME-enc方式编码的。这个映射关系会添加在所有有效的映射关系上,并覆盖所有相同的extension扩展名映射。
### 示例
```
AddEncoding x-gzip .gz
AddEncoding x-compress .Z
```
有了上述定义后,包含`.gz`扩展名的文件被认为是用`x-gzip`方式编码的,而带`.Z`扩展名的文件则被认为是用`x-compress`方式编码的。
老的客户端期望`x-gzip`和`x-compress` ,然而,按标准来说,它们分别等同于`gzip`和`compress` 。Apache在进行编码方式映射时,会忽略"`x-`"前缀。当响应需要包含编码方式时,Apache会使用客户端请求的格式(例如:`x-foo`或`foo`)来应答。如果客户端没有指明特定的格式,Apache会使用`AddEncoding`指令给定的编码方式。为了简化这一问题,你应该为这两个特定的编码方式始终使用`x-gzip`和`x-compress` 。对于象`deflate`这样比较新的编码方式,指定时不要带"`x-`"前缀。
extension参数是大小无关的,并且可以带或不带前导点。
## AddHandler 指令
| [说明](#calibre_link-18) | 在文件扩展名与特定的处理器之间建立映射 |
| --- | --- |
| [语法](#calibre_link-19) | `AddHandler handler-name extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
指定带extension扩展名的文件应被[handler-name](#calibre_link-253)处理器来处理。这个映射关系会添加在所有有效的映射关系上,并覆盖所有相同的extension扩展名映射。例如,为了把扩展名为`.cgi`的文件作为CGI脚本来处理,你应该定义:
```
AddHandler cgi-script .cgi
```
一旦将上述定义放在你的http.conf文件中,所有包含`.cgi`扩展名的文件,都会被当成是CGI程序。
extension参数是大小无关的,并且可以带或不带前导点。
### 参见
* `SetHandler`
## AddInputFilter 指令
| [说明](#calibre_link-18) | 在文件扩展名与特定的输入过滤器之间建立映射 |
| --- | --- |
| [语法](#calibre_link-19) | `AddInputFilter filter[;filter...] extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 仅在 Apache 2.0.26 及以后的版本中可用 |
`AddInputFilter`指令在文件扩展名extension与对服务器收到的客户请求进行处理与转发的输入[过滤器](#calibre_link-15)之间建立映射。这是除包括`SetInputFilter`指令在内的所有过滤器定义指令之外的定义。这个映射会与所有有效的定义合并,并覆盖所有相同的extension扩展名映射。
如果要指定一个以上的过滤器,它们必须用分号来分隔,并按它们处理文档的顺序来排列。filter与extension参数都是大小无关的,extension可以带或不带前导点。
### 参见
* `RemoveInputFilter`
* `SetInputFilter`
## AddLanguage 指令
| [说明](#calibre_link-18) | 在文件扩展名与特定的语言之间建立映射 |
| --- | --- |
| [语法](#calibre_link-19) | `AddLanguage MIME-lang extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
`AddLanguage`指令在文件扩展名与特定的语言之间建立映射。指令定义以extension为扩展名的文件是以MIME-lang语言写成的。这个映射关系会添加在所有有效的映射关系上,并覆盖所有相同的extension扩展名映射。
### 示例
```
AddEncoding x-compress .Z
AddLanguage en .en
AddLanguage fr .fr
```
这样一来,文档`xxxx.en.Z`将会被当成是一个压缩的英文文档(`xxxx.Z.en`也一样)。虽然内容的语言会返回给客户端,但浏览器一般未必会使用这一信息。`AddLanguage`指令更多的用于[内容协商](#calibre_link-258),以决定哪个文档应当被返回给用户。
如果同一个扩展名被赋予多个语言,那么使用最后出现的那个。因此在下列情况中:
```
AddLanguage en .en
AddLanguage en-gb .en
AddLanguage en-us .en
```
带`.en`扩展名的文档会被当成是`en-us` 。
extension参数是大小无关的,并且可以带或不带前导点。
### 参见
* `mod_negotiation`
## AddOutputFilter 指令
| [说明](#calibre_link-18) | 在文件扩展名与特定的输出过滤器之间建立映射关系 |
| --- | --- |
| [语法](#calibre_link-19) | `AddOutputFilter filter[;filter...] extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 仅在 Apache 2.0.26 及以后的版本中可用 |
`AddOutputFilter`指令在文件扩展名extension与对服务将返回给客户的信息进行处理的输出[过滤器](#calibre_link-15)之间建立映射。这是除包括`SetOutputFilter`和`AddOutputFilterByType`指令在内的所有过滤器定义指令之外定义。这个映射会与所有有效的定义合并,并覆盖所有相同的extension扩展名映射。
例如,下述配置会在处理所有`.shtml`文件时,进行服务器端包含,并同时使用`mod_deflate`模块压缩后输出。
```
AddOutputFilter INCLUDES;DEFLATE shtml
```
如果要指定一个以上的过滤器,它们必须用分号来分隔,并按它们处理文档的顺序来排列。filter和extension参数都是大小写无关的,extension可以带或不带前导点。
### 参见
* `RemoveOutputFilter`
* `SetOutputFilter`
## AddType 指令
| [说明](#calibre_link-18) | 在给定的文件扩展名与特定的内容类型之间建立映射 |
| --- | --- |
| [语法](#calibre_link-19) | `AddType MIME-type extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
`AddType`指令在给定的文件扩展名与特定的内容类型之间建立映射关系。MIME-type指明了包含extension扩展名的文件的[媒体类型](#calibre_link-223 "see glossary")。这个映射关系会添加在所有有效的映射关系上,并覆盖所有相同的extension扩展名映射。本指令可用来增加没有在媒体类型文件(参阅`TypesConfig`指令)中定义的映射关系。
### 示例
```
AddType image/gif .gif
```
推荐使用`AddType`指令增加新的媒体类型映射关系,而不是改变`TypesConfig`文件。
extension参数是大小无关的,并且可以带或不带前导点。
### 参见
* `DefaultType`
* `ForceType`
## DefaultLanguage 指令
| [说明](#calibre_link-18) | 为所有文件设定特定的默认语言 |
| --- | --- |
| [语法](#calibre_link-19) | `DefaultLanguage MIME-lang` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
`DefaultLanguage`指令告诉Apache,当该指令作用域范围内(例如,所有当前`<Directory>`指令封装范围内)的文件没有明确的语言扩展名(例如由`AddLanguage`指令定义的`.fr`或`.de`)时,文件应该被认为是由MIME-lang语言构成的。举例来说,这就允许在不必对每个文件进行重命名的情况下,把整个目录中的文件标记为包含荷兰语内容。注意不同于用扩展名来指定语言,`DefaultLanguage`指令只能指定一种语言。
如果没有提供有效的`DefaultLanguage`指令同时文件也不包含由`AddLanguage`定义的语言扩展名,那么该文件将被认为没有语言属性。
### 示例
```
DefaultLanguage en
```
### 参见
* `mod_negotiation`
## ModMimeUsePathInfo 指令
| [说明](#calibre_link-18) | 将`path_info`当成是文件名的一个组成部分 |
| --- | --- |
| [语法](#calibre_link-19) | `ModMimeUsePathInfo On|Off` |
| [默认值](#calibre_link-24) | `ModMimeUsePathInfo Off` |
| [作用域](#calibre_link-20) | directory |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 仅在 Apache 2.0.41 及以后的版本中可用 |
`ModMimeUsePathInfo`指令用来设定在使用由`mod_mime`提供的指令时,是否将URL的`path_info`与文件名结合起来进行处理。默认值为 `Off` ,也就是说URL的`path_info`部分被忽略。
当你使用虚拟文件系统的时候,推荐使用本指令。
### 示例
```
ModMimeUsePathInfo On
```
对`/bar/foo.shtml`这样的请求来说,"`/bar`"是一个位置信息,如果`ModMimeUsePathInfo`指令为 `On` ,`mod_mime`会将请求解析成`/bar/foo.shtml` ,于是象"`AddOutputFilter INCLUDES .shtml`"这样的指令就会使用`INCLUDES`过滤器来处理这个请求。如果没有设定`ModMimeUsePathInfo`指令,则不会使用`INCLUDES`过滤器。
### 参见
* `AcceptPathInfo`
## MultiviewsMatch 指令
| [说明](#calibre_link-18) | 在使用MultiViews查询所匹配的文件时要包含的文件类型 |
| --- | --- |
| [语法](#calibre_link-19) | `MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers [Handlers|Filters]` |
| [默认值](#calibre_link-24) | `MultiviewsMatch NegotiatedOnly` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 仅在 Apache 2.0.26 及以后的版本中可用 |
`MultiviewsMatch`指令在实现`mod_negotiation`模块的Multiviews功能时,提供了三种不同的处理方法。Multiviews允许对一个文件的请求,可以用任何在基础请求后面跟上协商扩展名的情况来匹配,例如:`index.html`可以用`index.html.en`, `index.html.fr`, `index.html.gz`来匹配。
`NegotiatedOnly`选项规定每个跟在基础名字后面的扩展名必须关联到一个在内容协商时已知的`mod_mime`扩展名,例如:字符集、内容类型、语言、编码方式。这是一种最严格也是副作用最少的实现方法,它是默认的处理方式。
为了包含与处理器和/或过滤器关联的扩展名,可以设定`MultiviewsMatch`指令为`Handlers`或`Filters` ,也可以两个都选。如果其它所有因素都相等,则会选择最小的那个文件来提供服务。例如,在一个500字节的`index.html.cgi`文件和一个1000字节的`index.html.pl`文件中做选择时,`.cgi`文件会胜出。如果`.asis`文件与`asis-handler`处理器关联,对`.asis`文件的请求就会使用处理器选项指明的处理器。
即使`mod_mime`不认识的扩展名,你最终也可以通过使用`Any`选项来使它匹配用户的请求。Apaceh1.3就是按这个方式处理的,这会导致无法预测的结果,比如匹配了网站管理员从来不希望使用的.old或.bak文件。
例如,下面的配置允许在Multviews查询中使用处理器和过滤器,但会拒绝未知的文件:
```
MultiviewsMatch Handlers Filters
```
### 参见
* `Options`
* `mod_negotiation`
## RemoveCharset 指令
| [说明](#calibre_link-18) | 删除任何给定的扩展名与内容字符集之间的关联 |
| --- | --- |
| [语法](#calibre_link-19) | `RemoveCharset extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 仅在 Apache 2.0.24 及以后的版本中可用 |
`RemoveCharset`指令删除任何给定的扩展名与内容字符集之间的关联。子目录中的`.htaccess`文件可以通过这条指令取消从父目录或服务器配置文件中继承过来的扩展名与内容字符集之间的关联关系。
extension参数是大小无关的,并且可以带或不带前导点。
### 示例
```
RemoveCharset .html .shtml
```
## RemoveEncoding 指令
| [说明](#calibre_link-18) | 删除任何给定的扩展名与内容编码方式之间的关联 |
| --- | --- |
| [语法](#calibre_link-19) | `RemoveEncoding extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
`RemoveEncoding`指令删除任何给定的扩展名与内容编码方式之间的关联。子目录中的`.htaccess`文件可以通过这条指令取消从父目录或服务器配置文件中继承过来的扩展名与内容编码方式之间的关联关系。举例来说,它可以这样来使用:
### /foo/.htaccess:
```
AddEncoding x-gzip .gz
AddType text/plain .asc
<Files *.gz.asc>
RemoveEncoding .gz
</Files>
```
这样,`foo.gz`被认为是用gzip方式编码的,但`foo.gz.asc`将被认为是一个未编码的纯文本文件。
### 注意
`RemoveEncoding`指令在所有`AddEncoding`指令_之后_处理,因此如果在同一个目录配置里两者都出现的话,`RemoveEncoding`指令将会取消后面的`AddEncoding`指令的作用。
extension参数是大小无关的,并且可以带或不带前导点。
## RemoveHandler 指令
| [说明](#calibre_link-18) | 删除任何指定扩展名与处理器之间的关联 |
| --- | --- |
| [语法](#calibre_link-19) | `RemoveHandler extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
`RemoveHandler`指令删除任何指定的扩展名与处理器之间的关联。子目录中的`.htaccess`文件可以通过这条指令取消从父目录或服务器配置文件中继承过来的扩展名与处理器之间的关联关系。举例来说,它可以这样来使用:
### /foo/.htaccess
`AddHandler server-parsed .html`
### /foo/bar/.htaccess
`RemoveHandler .html`
`这样`/foo/bar`目录中的`.html`文件将被当成普通文件来处理,而不是由parsing处理器(参阅`mod_include`模块)来处理。`
extension参数是大小无关的,并且可以带或不带前导点。
## RemoveInputFilter 指令
| [说明](#calibre_link-18) | 删除指定扩展名与输入过滤器之间的关联 |
| --- | --- |
| [语法](#calibre_link-19) | `RemoveInputFilter extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 仅在 Apache 2.0.26 及以后的版本中可用 |
`RemoveInputFilter`指令删除指定的扩展名与输入过滤器之间的关联。子目录中的`.htaccess`文件可以通过这条指令取消从父目录或服务器配置文件中继承过来的扩展名与输入过滤器之间的关联关系。
extension参数是大小无关的,并且可以带或不带前导点。
### 参见
* `AddInputFilter`
* `SetInputFilter`
## RemoveLanguage 指令
| [说明](#calibre_link-18) | 删除指定的扩展名与内容语言之间的关联 |
| --- | --- |
| [语法](#calibre_link-19) | `RemoveLanguage extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 仅在 Apache 2.0.24 及以后的版本中可用 |
`RemoveLanguage`指令删除指定的扩展名与内容语言之间的关联。子目录中的`.htaccess`文件可以通过这条指令取消从父目录或服务器配置文件中继承过来的扩展名与内容语言之间的关联关系。
extension参数是大小无关的,并且可以带或不带前导点。
## RemoveOutputFilter 指令
| [说明](#calibre_link-18) | 删除指定扩展名与输出过滤器之间的关联 |
| --- | --- |
| [语法](#calibre_link-19) | `RemoveOutputFilter extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 仅在 2.0.26 及以后的版本中可用 |
`RemoveOutputFilter`指令删除指定的扩展名与输出过滤器之间的关联。子目录中的`.htaccess`文件可以通过这条指令取消从父目录或服务器配置文件中继承过来的扩展名与输出过滤器之间的关联关系。
extension参数是大小无关的,并且可以带或不带前导点。
### 示例
```
RemoveOutputFilter shtml
```
### 参见
* `AddOutputFilter`
## RemoveType 指令
| [说明](#calibre_link-18) | 删除指定扩展名与内容类型之间的关联 |
| --- | --- |
| [语法](#calibre_link-19) | `RemoveType extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆盖项](#calibre_link-66) | FileInfo |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
`RemoveType`指令删除指定的扩展名与[内容类型](#calibre_link-223 "see glossary")之间的关联。子目录中的`.htaccess`文件可以通过这条指令取消从父目录或服务器配置文件中继承过来的扩展名与内容类型之间的关联关系。举例来说,它可以这样使用:
### /foo/.htaccess
`RemoveType .cgi`
`这将删除`/foo/`目录及其所有子目录下`.cgi`文件的特定处理方式,从而使这些文件按`DefaultType`指令设定的默认类型来处理。`
`
### 注意
`RemoveType`指令会在所有的`AddType`指令_之后_处理,因此,当同一个目录配置中,同时存在这两种指令的时候,前面的`RemoveType`指令将会取消后面的`AddType`指令的作用。
extension参数是大小无关的,并且可以带或不带前导点。
``
## TypesConfig 指令
| [说明](#calibre_link-18) | 指定`mime.types`文件的位置 |
| --- | --- |
| [语法](#calibre_link-19) | `TypesConfig file-path` |
| [默认值](#calibre_link-24) | `TypesConfig conf/mime.types` |
| [作用域](#calibre_link-20) | server config |
| [状态](#calibre_link-21) | 基本(B) |
| [模块](#calibre_link-22) | mod_mime |
`TypesConfig`指令设定[MIME类型](#calibre_link-223 "see glossary")配置文件的位置。File-path是相对于`ServerRoot`的路径。媒体类型配置文件列出了文件扩展名与内容类型的默认映射关系。大多数管理员使用既定的`mime.types`文件,它关联了文件扩展名和由IANA注册的内容类型。最新的列表可以在[http://www.iana.org/assignments/media-types/index.html](http://www.iana.org/assignments/media-types/index.html)得到。这样做可以大大简化`httpd.conf`文件里的媒体类型定义,在需要时,也可以用`AddType`指令来更改这些定义。你不应该编辑`mime.types`文件,因为在服务器升级的时候,它会被覆盖。
文件包含类似于`AddType`指令参数格式的行:
```
<var class="calibre40">MIME-type</var> [<var class="calibre40">extension</var>] ...
```
扩展名的大小写是无关紧要的。空行和以井号(`#`)打头的行会被忽略。
请**不要**要求Apache HTTP服务器项目组在已发布的`mime.types`文件中增加新的项,除非(1)它们已经在IANS注册过了,或者(2)它们被广泛地使用,并且在多平台上没有文件扩展名冲突发生。`category/x-subtype`请求会被自动拒绝,因为任何新的二字母的扩展名很可能会与已经非常拥挤的语言及字符集名字空间冲突。
### 参见
* `mod_mime_magic`
``
- Apache HTTP Server Version 2.2 文档 [最后更新:2006年3月21日]
- 版本说明
- 从1.3升级到2.0
- 从2.0升级到2.2
- Apache 2.2 新特性概述
- Apache 2.0 新特性概述
- The Apache License, Version 2.0
- 参考手册
- 编译与安装
- 启动Apache
- 停止和重启
- 配置文件
- 配置段(容器)
- 缓冲指南
- 服务器全局配置
- 日志文件
- 从URL到文件系统的映射
- 安全方面的提示
- 动态共享对象(DSO)支持
- 内容协商
- 自定义错误响应
- 地址和端口的绑定(Binding)
- 多路处理模块
- Apache的环境变量
- Apache处理器的使用
- 过滤器(Filter)
- suEXEC支持
- 性能方面的提示
- URL重写指南
- Apache虚拟主机文档
- 基于主机名的虚拟主机
- 基于IP地址的虚拟主机
- 大批量虚拟主机的动态配置
- 虚拟主机示例
- 深入研究虚拟主机的匹配
- 文件描述符限制
- 关于DNS和Apache
- 常见问题
- 经常问到的问题
- Apache的SSL/TLS加密
- SSL/TLS高强度加密:绪论
- SSL/TLS高强度加密:兼容性
- SSL/TLS高强度加密:如何...?
- SSL/TLS Strong Encryption: FAQ
- 如何.../指南
- 认证、授权、访问控制
- CGI动态页面
- 服务器端包含入门
- .htaccess文件
- 用户网站目录
- 针对特定平台的说明
- 在Microsoft Windows中使用Apache
- 在Microsoft Windows上编译Apache
- Using Apache With Novell NetWare
- Running a High-Performance Web Server on HPUX
- The Apache EBCDIC Port
- 服务器和支持程序
- httpd - Apache超文本传输协议服务器
- ab - Apache HTTP服务器性能测试工具
- apachectl - Apache HTTP服务器控制接口
- apxs - Apache 扩展工具
- configure - 配置源代码树
- dbmmanage - 管理DBM格式的用户认证文件
- htcacheclean - 清理磁盘缓冲区
- htdbm - 操作DBM密码数据库
- htdigest - 管理用于摘要认证的用户文件
- httxt2dbm - 生成RewriteMap指令使用的dbm文件
- htpasswd - 管理用于基本认证的用户文件
- logresolve - 解析Apache日志中的IP地址为主机名
- rotatelogs - 滚动Apache日志的管道日志程序
- suexec - 在执行外部程序之前切换用户
- 其他程序
- 杂项文档
- 与Apache相关的标准
- Apache模块
- 描述模块的术语
- 描述指令的术语
- Apache核心(Core)特性
- Apache MPM 公共指令
- Apache MPM beos
- Apache MPM event
- Apache MPM netware
- Apache MPM os2
- Apache MPM prefork
- Apache MPM winnt
- Apache MPM worker
- Apache模块 mod_actions
- Apache模块 mod_alias
- Apache模块 mod_asis
- Apache模块 mod_auth_basic
- Apache模块 mod_auth_digest
- Apache模块 mod_authn_alias
- Apache模块 mod_authn_anon
- Apache模块 mod_authn_dbd
- Apache模块 mod_authn_dbm
- Apache模块 mod_authn_default
- Apache模块 mod_authn_file
- Apache模块 mod_authnz_ldap
- Apache模块 mod_authz_dbm
- Apache模块 mod_authz_default
- Apache模块 mod_authz_groupfile
- Apache模块 mod_authz_host
- Apache模块 mod_authz_owner
- Apache模块 mod_authz_user
- Apache模块 mod_autoindex
- Apache模块 mod_cache
- Apache模块 mod_cern_meta
- Apache模块 mod_cgi
- Apache模块 mod_cgid
- Apache模块 mod_charset_lite
- Apache模块 mod_dav
- Apache模块 mod_dav_fs
- Apache模块 mod_dav_lock
- Apache模块 mod_dbd
- Apache模块 mod_deflate
- Apache模块 mod_dir
- Apache模块 mod_disk_cache
- Apache模块 mod_dumpio
- Apache模块 mod_echo
- Apache模块 mod_env
- Apache模块 mod_example
- Apache模块 mod_expires
- Apache模块 mod_ext_filter
- Apache模块 mod_file_cache
- Apache模块 mod_filter
- Apache模块 mod_headers
- Apache模块 mod_ident
- Apache模块 mod_imagemap
- Apache模块 mod_include
- Apache模块 mod_info
- Apache模块 mod_isapi
- Apache模块 mod_ldap
- Apache模块 mod_log_config
- Apache模块 mod_log_forensic
- Apache模块 mod_logio
- Apache模块 mod_mem_cache
- Apache模块 mod_mime
- Apache模块 mod_mime_magic
- Apache模块 mod_negotiation
- Apache模块 mod_nw_ssl
- Apache模块 mod_proxy
- Apache模块 mod_proxy_ajp
- Apache模块 mod_proxy_balancer
- Apache模块 mod_proxy_connect
- Apache模块 mod_proxy_ftp
- Apache模块 mod_proxy_http
- Apache模块 mod_rewrite
- Apache模块 mod_setenvif
- Apache模块 mod_so
- Apache模块 mod_speling
- Apache模块 mod_ssl
- Apache模块 mod_status
- Apache模块 mod_suexec
- Apache模块 mod_unique_id
- Apache模块 mod_userdir
- Apache模块 mod_usertrack
- Apache模块 mod_version
- Apache模块 mod_vhost_alias
- Developer Documentation for Apache 2.0
- Apache 1.3 API notes
- Debugging Memory Allocation in APR
- Documenting Apache 2.0
- Apache 2.0 Hook Functions
- Converting Modules from Apache 1.3 to Apache 2.0
- Request Processing in Apache 2.0
- How filters work in Apache 2.0
- Apache 2.0 Thread Safety Issues
- 词汇和索引
- 词汇表
- 指令索引
- 指令速查
- 模块索引
- 站点导航