Apache HTTP 服务器版本 2.4

| 描述 | 将请求的文件名的扩展名与文件的行为(处理程序和过滤器)和内容(MIME 类型、语言、字符集和编码)相关联。 | 
|---|---|
| 状态 | 基础 | 
| 模块标识符 | mime_module | 
| 源文件 | mod_mime.c | 
此模块用于通过将 URI 或文件名中的模式映射到元数据值,将内容元数据分配给为 HTTP 响应选择的內容。例如,内容文件的扩展名通常定义内容的 Internet 媒体类型、语言、字符集和内容编码。此信息在包含该内容的 HTTP 消息中发送,并在选择备选方案时用于内容协商,以便在选择多个可能的内容之一时尊重用户的偏好。有关内容协商的更多信息,请参阅mod_negotiation。
指令AddCharset、AddEncoding、AddLanguage和AddType都用于将文件扩展名映射到该文件的元数据。它们分别设置文档的字符集、内容编码、内容语言和媒体类型(内容类型)。指令TypesConfig用于指定一个文件,该文件也映射扩展名到媒体类型。
此外,mod_mime可以定义生成和处理内容的处理程序和过滤器。指令AddHandler、AddOutputFilter和AddInputFilter控制提供文档的模块或脚本。指令MultiviewsMatch允许mod_negotiation将这些文件扩展名视为在测试 Multiviews 匹配时要包含的扩展名。
虽然mod_mime将元数据与文件名扩展名相关联,但core服务器提供用于将给定容器(例如,<Location>、<Directory>或<Files>)中的所有文件与特定元数据相关联的指令。这些指令包括ForceType、SetHandler、SetInputFilter和SetOutputFilter。核心指令会覆盖在mod_mime中定义的任何文件名扩展名映射。
请注意,更改文件的元数据不会更改Last-Modified标头的值。因此,客户端或代理可能仍然使用以前缓存的副本,并使用以前的标头。如果您更改了元数据(语言、内容类型、字符集或编码),您可能需要“touch”受影响的文件(更新其最后修改日期),以确保所有访问者都收到更正的内容标头。

 AddCharset
 AddCharset AddEncoding
 AddEncoding AddHandler
 AddHandler AddInputFilter
 AddInputFilter AddLanguage
 AddLanguage AddOutputFilter
 AddOutputFilter AddType
 AddType DefaultLanguage
 DefaultLanguage ModMimeUsePathInfo
 ModMimeUsePathInfo MultiviewsMatch
 MultiviewsMatch RemoveCharset
 RemoveCharset RemoveEncoding
 RemoveEncoding RemoveHandler
 RemoveHandler RemoveInputFilter
 RemoveInputFilter RemoveLanguage
 RemoveLanguage RemoveOutputFilter
 RemoveOutputFilter RemoveType
 RemoveType TypesConfig
 TypesConfig文件可以有多个扩展名;扩展名的顺序通常无关紧要。例如,如果文件welcome.html.fr映射到内容类型text/html和法语,则文件welcome.fr.html将映射到完全相同的信息。如果给出了多个映射到相同类型元数据的扩展名,则将使用最右边的扩展名,但语言和内容编码除外。例如,如果.gif映射到媒体类型image/gif,而.html映射到媒体类型text/html,则文件welcome.gif.html将与媒体类型text/html相关联。
语言和内容编码被视为累积的,因为可以将多种语言或编码分配给特定资源。例如,文件welcome.html.en.de将使用Content-Language: en, de和Content-Type: text/html进行传递。
当具有多个扩展名的文件同时与媒体类型和处理程序相关联时,应谨慎操作。这通常会导致请求由与处理程序关联的模块处理。例如,如果.imap扩展名映射到处理程序imap-file(来自mod_imagemap),而.html扩展名映射到媒体类型text/html,则文件world.imap.html将与imap-file处理程序和text/html媒体类型相关联。在处理时,将使用imap-file处理程序,因此它将被视为mod_imagemap图像映射文件。
如果您希望仅将文件名的最后一个点分隔部分映射到特定元数据,则不要使用Add*指令。例如,如果您希望将文件foo.html.cgi作为 CGI 脚本处理,但不处理文件bar.cgi.html,则不要使用AddHandler cgi-script .cgi,而是使用
<FilesMatch "[^.]+\.cgi$"> SetHandler cgi-script </FilesMatch>
特定媒体类型的文件还可以以特定方式进行编码,以简化通过 Internet 的传输。虽然这通常是指压缩,例如gzip,但它也可以指加密,例如pgp,或者指编码,例如 UUencoding,它旨在以 ASCII(文本)格式传输二进制文件。
HTTP/1.1 RFC第 14.11 节对此进行了如下说明
Content-Encoding 实体标头字段用作媒体类型的修饰符。如果存在,其值表示已对实体主体应用了哪些附加内容编码,以及为了获得 Content-Type 标头字段引用的媒体类型,必须应用哪些解码机制。Content-Encoding 主要用于允许压缩文档,而不会丢失其底层媒体类型的标识。
通过使用多个文件扩展名(请参阅关于多个文件扩展名的上一节),您可以指示文件属于特定类型,并且还具有特定编码。
例如,您可能有一个文件是 Microsoft Word 文档,该文档已使用 pkzip 进行压缩以减小其大小。如果.doc扩展名与 Microsoft Word 文件类型相关联,而.zip扩展名与 pkzip 文件编码相关联,则文件Resume.doc.zip将被识别为 pkzip 压缩的 Word 文档。
Apache 使用Content-encoding标头发送资源,以便告诉客户端浏览器编码方法。
Content-encoding: pkzip
除了文件类型和文件编码之外,另一个重要的信息是特定文档的语言以及应以何种字符集显示文件。例如,文档可能使用越南语字母或西里尔字母编写,并且应该以这种方式显示。此信息也通过 HTTP 标头传输。
字符集、语言、编码和 MIME 类型都用于内容协商过程(请参阅mod_negotiation),以确定在有多个字符集、语言、编码或 MIME 类型的备选文档时,应向客户端提供哪个文档。使用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 charset extension [extension] ... | 
| 上下文 | 服务器配置、虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
AddCharset 指令将给定的文件名扩展名映射到指定的字符集(给定字符编码的互联网注册名称)。charset 是 媒体类型的字符集参数,用于文件名包含 extension 的资源。此映射将添加到任何已生效的映射中,覆盖对相同 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 指令对于告知客户端文档的字符编码以便文档能够被正确解释和显示,以及用于 内容协商 非常有用,在内容协商中,服务器根据客户端的字符集首选项从多个文档中返回一个文档。
extension 参数不区分大小写,可以带或不带前导点。文件名可能具有 多个扩展名,并且 extension 参数将与每个扩展名进行比较。
| 描述 | 将给定的文件名扩展名映射到指定的编码类型 | 
|---|---|
| 语法 | AddEncoding encoding extension [extension] ... | 
| 上下文 | 服务器配置、虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
AddEncoding 指令将给定的文件名扩展名映射到指定的 HTTP 内容编码。encoding 是 HTTP 内容编码,用于将 Content-Encoding 头部字段的值附加到以 extension 命名的文档。此映射将添加到任何已生效的映射中,覆盖对相同 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 参数不区分大小写,可以带或不带前导点。文件名可能具有 多个扩展名,并且 extension 参数将与每个扩展名进行比较。
| 描述 | 将文件名扩展名映射到指定的处理程序 | 
|---|---|
| 语法 | AddHandler handler-name extension [extension] ... | 
| 上下文 | 服务器配置、虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
具有 extension 名称的文件将由指定的 handler-name 提供服务。此映射将添加到任何已生效的映射中,覆盖对相同 extension 已存在的任何映射。例如,要激活具有 .cgi 文件扩展名的 CGI 脚本,您可以使用
AddHandler cgi-script .cgi
一旦将其放入您的 httpd.conf 文件中,任何包含 .cgi 扩展名的文件都将被视为 CGI 程序。
extension 参数不区分大小写,可以带或不带前导点。文件名可能具有 多个扩展名,并且 extension 参数将与每个扩展名进行比较。
| 描述 | 将文件名扩展名映射到将处理客户端请求的过滤器 | 
|---|---|
| 语法 | AddInputFilter filter[;filter...] extension [extension] ... | 
| 上下文 | 服务器配置、虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
AddInputFilter 将文件名扩展名 extension 映射到 过滤器,这些过滤器将在客户端请求和 POST 输入被服务器接收时处理它们。这将添加到在其他地方定义的任何过滤器中,包括 SetInputFilter 指令。此映射将合并到任何已生效的映射中,覆盖对相同 extension 已存在的任何映射。
如果指定了多个 filter,则必须用分号分隔它们,并按它们应该处理内容的顺序排列。filter 不区分大小写。
extension 参数不区分大小写,可以带或不带前导点。文件名可能具有 多个扩展名,并且 extension 参数将与每个扩展名进行比较。
| 描述 | 将给定的文件名扩展名映射到指定的语言 | 
|---|---|
| 语法 | AddLanguage language-tag extension [extension] ... | 
| 上下文 | 服务器配置、虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
AddLanguage 指令将给定的文件名扩展名映射到指定的语言。具有文件名 extension 的文件被分配一个 HTTP Content-Language 值 language-tag,该值对应于 RFC 3066 定义的语言标识符。此指令将覆盖对相同 extension 已存在的任何映射。
AddEncoding x-compress .Z AddLanguage en .en AddLanguage fr .fr
然后,文档 xxxx.en.Z 将被视为一个压缩的英语文档(文档 xxxx.Z.en 也是如此)。尽管语言被报告给客户端,但浏览器不太可能使用此信息。AddLanguage 指令对于 内容协商 更有用,在内容协商中,服务器根据客户端的语言首选项从多个文档中返回一个文档。
如果对同一个扩展名进行了多个语言分配,则遇到的最后一个分配将是使用的分配。也就是说,对于
AddLanguage en .en AddLanguage en-gb .en AddLanguage en-us .en
具有 .en 扩展名的文档将被视为 en-us。
extension 参数不区分大小写,可以带或不带前导点。文件名可能具有 多个扩展名,并且 extension 参数将与每个扩展名进行比较。
| 描述 | 将文件名扩展名映射到将处理来自服务器的响应的过滤器 | 
|---|---|
| 语法 | AddOutputFilter filter[;filter...] extension [extension] ... | 
| 上下文 | 服务器配置、虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
AddOutputFilter 指令将文件名扩展名 extension 映射到 过滤器,这些过滤器将在服务器响应被发送到客户端之前处理它们。这将添加到在其他地方定义的任何过滤器中,包括 SetOutputFilter 和 AddOutputFilterByType 指令。此映射将合并到任何已生效的映射中,覆盖对相同 extension 已存在的任何映射。
例如,以下配置将处理所有 .shtml 文件以进行服务器端包含,然后使用 mod_deflate 压缩输出。
AddOutputFilter INCLUDES;DEFLATE shtml
如果指定了多个过滤器,则必须用分号分隔它们,并按它们应该处理内容的顺序排列。filter 参数不区分大小写。
extension 参数不区分大小写,可以带或不带前导点。文件名可能具有 多个扩展名,并且 extension 参数将与每个扩展名进行比较。
请注意,当使用 AddOutputFilter 指令定义一组过滤器时,所做的任何定义都将替换 AddOutputFilter 指令先前做出的任何定义。
# Effective filter "DEFLATE" AddOutputFilter DEFLATE shtml <Location "/foo"> # Effective filter "INCLUDES", replacing "DEFLATE" AddOutputFilter INCLUDES shtml </Location> <Location "/bar"> # Effective filter "INCLUDES;DEFLATE", replacing "DEFLATE" AddOutputFilter INCLUDES;DEFLATE shtml </Location> <Location "/bar/baz"> # Effective filter "BUFFER", replacing "INCLUDES;DEFLATE" AddOutputFilter BUFFER shtml </Location> <Location "/bar/baz/buz"> # No effective filter, replacing "BUFFER" RemoveOutputFilter shtml </Location>
| 描述 | 将给定的文件名扩展名映射到指定的媒体类型 | 
|---|---|
| 语法 | AddType media-type extension [extension] ... | 
| 上下文 | 服务器配置、虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
AddType 指令将给定的文件名扩展名映射到指定的媒体类型。media-type 是用于文件名包含 extension 的媒体类型。此映射将添加到任何已生效的映射中,覆盖对相同 extension 已存在的任何映射。
AddType 指令添加新的媒体类型,而不是更改 TypesConfig 文件。AddType image/gif .gif
或者,在一个指令中指定多个文件扩展名
AddType image/jpeg jpeg jpg jpe
extension 参数不区分大小写,可以带或不带前导点。文件名可能具有 多个扩展名,并且 extension 参数将与每个扩展名进行比较。
可以使用 qs 限定 media-type 来实现与 mod_negotiation 的 LanguagePriority 相似的效果
AddType application/rss+xml;qs=0.8 .xml
这在某些情况下很有用,例如,当请求 Accept: */* 的客户端实际上无法处理服务器返回的内容时。
此指令主要配置为从文件系统中提供服务的静态文件生成的媒体类型。对于除静态文件以外的资源,响应生成器通常会指定一个 Content-Type,此指令无效。
如果未为请求显式设置处理程序,则指定的媒体类型也将用作处理程序名称。
当显式指令(如 SetHandler 或 AddHandler)不适用于当前请求时,通常由这些指令设置的内部处理程序名称将改为设置为此指令指定的媒体类型。
这是一种历史行为,可能被一些第三方模块(如 mod_php)用来负责匹配请求。
应避免依赖此类“合成”类型的配置。此外,限制对 SetHandler 或 AddHandler 的访问权限的配置也应限制对此指令的访问权限。
| 描述 | 定义一个默认的语言标签,该标签将在 Content-Language 头部字段中发送给当前上下文中所有未通过其他方式分配语言标签的资源。 | 
|---|---|
| 语法 | DefaultLanguage language-tag | 
| 上下文 | 服务器配置、虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
DefaultLanguage 指令告诉 Apache,指令作用域内的所有资源(例如,当前 <Directory> 容器覆盖的所有资源),如果没有任何显式语言扩展名(如 .fr 或 .de,如 AddLanguage 配置),则应分配一个 Content-Language 为 language-tag。例如,这允许将整个目录树标记为包含荷兰语内容,而无需重命名每个文件。请注意,与使用扩展名指定语言不同,DefaultLanguage 只能指定一种语言。
如果没有任何 DefaultLanguage 指令生效,并且文件没有 AddLanguage 配置的任何语言扩展名,则不会生成 Content-Language 头部字段。
DefaultLanguage en
| 描述 | 告诉 mod_mime将path_info组件视为文件名的一部分 | 
|---|---|
| 语法 | ModMimeUsePathInfo On|Off | 
| 默认 | ModMimeUsePathInfo Off | 
| 上下文 | 目录 | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
ModMimeUsePathInfo 指令用于将文件名与 path_info URL 组件组合起来,以将 mod_mime 的指令应用于请求。默认值为 Off - 因此,path_info 组件将被忽略。
当您拥有虚拟文件系统时,建议使用此指令。
ModMimeUsePathInfo On
如果您请求的是 /index.php/foo.shtml,mod_mime 将会把这个请求当作 /index.php/foo.shtml 处理,并且类似于 AddOutputFilter INCLUDES .shtml 这样的指令会将 INCLUDES 过滤器添加到这个请求中。如果 ModMimeUsePathInfo 没有设置,INCLUDES 过滤器将不会被添加。对于虚拟路径,例如由 <Location> 定义的路径,也会以类似的方式工作。
| 描述 | 使用 MultiViews 搜索匹配文件时,将包含的文件类型 | 
|---|---|
| 语法 | MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers [Handlers|Filters] | 
| 默认 | MultiviewsMatch NegotiatedOnly | 
| 上下文 | 服务器配置、虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
MultiviewsMatch 指令允许 mod_negotiation 模块的 Multiviews 功能有三种不同的行为。Multiviews 允许对一个文件(例如 index.html)的请求匹配任何与基本请求相匹配的协商扩展名,例如 index.html.en、index.html.fr 或 index.html.gz。
NegotiatedOnly 选项规定,基本名称后面的每个扩展名都必须与 mod_mime 识别的用于内容协商的扩展名相对应,例如字符集、内容类型、语言或编码。这是最严格的实现方式,副作用最少,也是默认行为。
要包含与处理器和/或过滤器关联的扩展名,请将 MultiviewsMatch 指令设置为 Handlers、Filters 或两者。如果所有其他因素都相同,则将提供最小的文件,例如,在 index.html.cgi(500 字节)和 index.html.pl(1000 字节)之间进行选择时,.cgi 文件将在此示例中获胜。.asis 文件的用户可能更喜欢使用处理器选项,如果 .asis 文件与 asis-handler 相关联。
您最终可以允许任何扩展名匹配,即使 mod_mime 无法识别该扩展名。这可能会导致不可预测的结果,例如提供网站管理员从未期望提供的 .old 或 .bak 文件。
例如,以下配置将允许处理器和过滤器参与 Multviews,但将排除未知文件
MultiviewsMatch Handlers Filters
MultiviewsMatch 不允许在 <Location> 或 <LocationMatch> 部分中使用。
| 描述 | 删除一组文件扩展名的任何字符集关联 | 
|---|---|
| 语法 | RemoveCharset extension [extension] ... | 
| 上下文 | 虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
RemoveCharset 指令会删除具有给定扩展名的文件的任何字符集关联。这允许子目录中的 .htaccess 文件撤消从父目录或服务器配置文件继承的任何关联。
extension 参数不区分大小写,可以带或不带前导点指定。
RemoveCharset .html .shtml
| 描述 | 删除一组文件扩展名的任何内容编码关联 | 
|---|---|
| 语法 | RemoveEncoding extension [extension] ... | 
| 上下文 | 虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
RemoveEncoding 指令会删除具有给定扩展名的文件的任何编码关联。这允许子目录中的 .htaccess 文件撤消从父目录或服务器配置文件继承的任何关联。它的一个使用示例可能是
AddEncoding x-gzip .gz
AddType text/plain .asc
<Files "*.gz.asc">
    RemoveEncoding .gz
</Files>
这将导致 foo.gz 被标记为使用 gzip 方法进行编码,而 foo.gz.asc 被标记为未编码的纯文本文件。
RemoveEncoding 指令在任何 AddEncoding 指令之后处理,因此如果两者都出现在同一个目录配置中,它们可能会撤消后者的效果。
extension 参数不区分大小写,可以带或不带前导点指定。
| 描述 | 删除一组文件扩展名的任何处理器关联 | 
|---|---|
| 语法 | RemoveHandler extension [extension] ... | 
| 上下文 | 虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
RemoveHandler 指令会删除具有给定扩展名的文件的任何处理器关联。这允许子目录中的 .htaccess 文件撤消从父目录或服务器配置文件继承的任何关联。它的一个使用示例可能是
AddHandler server-parsed .html
RemoveHandler .html
这将使 /foo/bar 目录中的 .html 文件被视为普通文件,而不是被视为解析的候选文件(参见 mod_include 模块)。
extension 参数不区分大小写,可以带或不带前导点指定。
| 描述 | 删除一组文件扩展名的任何输入过滤器关联 | 
|---|---|
| 语法 | RemoveInputFilter extension [extension] ... | 
| 上下文 | 虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
RemoveInputFilter 指令会删除具有给定扩展名的文件的任何输入 过滤器 关联。这允许子目录中的 .htaccess 文件撤消从父目录或服务器配置文件继承的任何关联。
extension 参数不区分大小写,可以带或不带前导点指定。
| 描述 | 删除一组文件扩展名的任何语言关联 | 
|---|---|
| 语法 | RemoveLanguage extension [extension] ... | 
| 上下文 | 虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
RemoveLanguage 指令会删除具有给定扩展名的文件的任何语言关联。这允许子目录中的 .htaccess 文件撤消从父目录或服务器配置文件继承的任何关联。
extension 参数不区分大小写,可以带或不带前导点指定。
| 描述 | 删除一组文件扩展名的任何输出过滤器关联 | 
|---|---|
| 语法 | RemoveOutputFilter extension [extension] ... | 
| 上下文 | 虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
RemoveOutputFilter 指令会删除具有给定扩展名的文件的任何输出 过滤器 关联。这允许子目录中的 .htaccess 文件撤消从父目录或服务器配置文件继承的任何关联。
extension 参数不区分大小写,可以带或不带前导点指定。
RemoveOutputFilter shtml
| 描述 | 删除一组文件扩展名的任何内容类型关联 | 
|---|---|
| 语法 | RemoveType extension [extension] ... | 
| 上下文 | 虚拟主机、目录、.htaccess | 
| 覆盖 | FileInfo | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
RemoveType 指令会删除具有给定扩展名的文件的任何 媒体类型 关联。这允许子目录中的 .htaccess 文件撤消从父目录或服务器配置文件继承的任何关联。它的一个使用示例可能是
RemoveType .cgi
这将删除 /foo/ 目录及其下所有目录中对 .cgi 文件的任何特殊处理,导致包含这些文件的响应省略 HTTP Content-Type 标头字段。
RemoveType 指令在任何 AddType 指令之后处理,因此如果两者都出现在同一个目录配置中,它们可能会撤消后者的效果。
extension 参数不区分大小写,可以带或不带前导点指定。
| 描述 | mime.types文件的位置 | 
|---|---|
| 语法 | TypesConfig file-path | 
| 默认 | TypesConfig conf/mime.types | 
| 上下文 | 服务器配置 | 
| 状态 | 基础 | 
| 模块 | mod_mime | 
TypesConfig 指令设置 媒体类型 配置文件的位置。 File-path 相对于 ServerRoot。此文件设置从文件名扩展名到内容类型的默认映射列表。大多数管理员使用其操作系统提供的 mime.types 文件,该文件将常见的文件名扩展名与 IANA 在 http://www.iana.org/assignments/media-types/index.html 上维护的官方媒体类型列表以及大量非官方类型相关联。这通过提供大多数媒体类型定义来简化 httpd.conf 文件,并且可以根据需要被 AddType 指令覆盖。您不应该编辑 mime.types 文件,因为它可能会在您升级服务器时被替换。
该文件包含与 AddType 指令的参数格式相同的行
      media-type [extension] ...
扩展名的大小写无关紧要。空行和以井号 (#) 开头的行将被忽略。空行是为了完整性(mime.types 文件的完整性)。Apache httpd 仍然可以使用 mod_mime_magic 来确定这些类型。
mime.types 文件中添加任何新条目,除非 (1) 它们已在 IANA 注册,并且 (2) 它们使用跨平台广泛接受的、不冲突的文件名扩展名。category/x-subtype 请求将被自动拒绝,任何新的两位字母扩展名也将被拒绝,因为它们很可能与已经拥挤的语言和字符集命名空间发生冲突。