mod_mime
描述: | 将请求的文件名的 extensions 与文件的行为(处理程序和过滤器)和内容(mime-type,语言,字符集和编码)相关联 |
状态: | Base |
模块标识符: | mime_module |
源文件: | mod_mime.c |
摘要
该模块用于通过将 URI 或文件名中的模式映射到元数据值来将内容元数据分配给为 HTTP 响应选择的内容。例如,内容 files 的文件名 extensions 通常定义内容的 Internet 媒体类型,语言,字符集和 content-encoding。此信息在包含该内容的 HTTP 消息中发送,并在选择备选项时在内容协商中使用,以便在选择要提供的若干可能内容之一时尊重用户的首选项。有关内容谈判的更多信息,请参见mod_negotiation。
指令AddCharset,AddEncoding,AddLanguage和将 AddType都用于将文件 extensions map 映射到该文件的元数据。他们分别设置了文档的字符集 content-encoding,content-language 和media-type(content-type)。指令TypesConfig用于指定一个文件,该文件也 maps extensions 到媒体类型。
另外,mod_mime可以定义发起和 process 内容的处理器和过滤器。指令AddHandler,AddOutputFilter和AddInputFilter控制为文档提供服务的模块或脚本。MultiviewsMatch指令允许mod_negotiation在测试 Multiviews 匹配时考虑包含这些文件 extensions。
当mod_mime将元数据与文件名 extensions 相关联时,核心服务器提供的指令用于将给定容器(e.g.,<Location>,<Directory>或<Files>)中的所有 files 与特定元数据相关联。这些指令包括ForceType 指令,SetHandler,SetInputFilter和SetOutputFilter。核心指令覆盖mod_mime中定义的任何文件扩展名映射。
请注意,更改文件的元数据不会更改Last-Modified
标头的 value。因此,以前缓存的副本可能仍由 client 或代理使用,与之前的 headers 一起使用。如果更改元数据(语言,content type,字符集或编码),则可能需要“触摸”受影响的 files(更新其上次修改的 date)以确保所有访问者都收到更正的内容 headers。
Files with Multiple Extensions
Files 可以有多个扩展名; extensions 的 order 通常是无关紧要的。例如,如果文件welcome.html.fr
maps 到 content type text/html
和语言法语,那么文件welcome.fr.html
将 map 到完全相同的信息。如果给出了多个扩展名 maps 到相同类型的元数据,那么除了语言和内容编码之外,将使用右边的扩展名。例如,如果.gif
maps 到media-typeimage/gif
和.html
maps 到 media-type text/html
,则文件welcome.gif.html
将与 media-type text/html
相关联。
语言和内容编码被视为累积,因为可以为特定资源分配多种语言或编码。对于 example,文件welcome.html.en.de
将随Content-Language: en, de
和Content-Type: text/html
一起提供。
当具有多个 extensions 的文件与media-type和处理程序相关联时,应该小心。这通常会导致请求由与处理程序关联的模块处理。例如,如果.imap
扩展名映射到处理程序imap-file
(来自mod_imagemap)并且.html
扩展名映射到 media-type text/html
,则文件world.imap.html
将与imap-file
处理程序和text/html
media-type 相关联。处理时,将使用imap-file
处理程序,因此它将被视为mod_imagemap imagemap 文件。
如果您希望仅将文件名的最后 dot-separated 部分映射到特定的 meta-data 部分,则不要使用Add*
指令。例如,如果您希望将文件foo.html.cgi
作为 CGI 脚本处理,而不是文件bar.cgi.html
,那么请使用AddHandler cgi-script .cgi
,而不是使用AddHandler cgi-script .cgi
仅基于最终扩展名配置处理程序
<FilesMatch "[^.]+.cgi$"> SetHandler cgi-script </FilesMatch>
内容编码
还可以以特定方式对特定media-type的文件进行编码以简化因特网上的传输。虽然这通常指的是压缩,例如gzip
,但它也可以指加密,例如pgp
或 UUencoding 等编码,用于以 ASCII(文本)格式传输二进制文件。
HTTP/1.1 RFC,section 14.11 这样说:
Content-Encoding entity-header 字段用作 media-type 的修饰符。如果存在,其 value 指示已对 entity-body 应用了哪些附加内容编码,因此必须在 order 中应用哪些解码机制以获得 Content-Type 头字段引用的 media-type。 Content-Encoding 主要用于允许压缩文档而不会丢失其基础媒体类型的标识。
通过使用多个文件扩展名(请参阅上面关于多个文件 extensions 的部分),您可以指示文件属于特定类型,并且还具有特定编码。
例如,您可能有一个 Microsoft Word 文档的文件,该文件被 pkzip 以减小其大小。如果.doc
扩展名与 Microsoft Word 文件类型相关联,并且.zip
扩展名与 pkzip 文件编码相关联,则文件Resume.doc.zip
将被称为 pkzip 的 Word 文档。
Apache 在 order 中发送带有资源的Content-encoding
标头,以告诉 client 浏览器有关编码方法的信息。
Content-encoding: pkzip
字符 sets 和语言
除了文件类型和文件编码之外,另一个重要的信息是特定文档所使用的语言,以及应该显示文件的字符集。例如,文档可能用越南语字母或西里尔字母书写,应该如此显示。此信息也在 HTTP headers 中传输。
字符集,语言,编码和 mime 类型都在内容 negotiation(参见mod_negotiation)的 process 中使用,以确定在多个字符集,语言,编码或 mime 中存在替代文档时要向 client 提供哪个文档类型。使用AddCharset,AddEncoding,AddLanguage和将 AddType指令(以及MimeMagicFile中列出的 extensions)创建的所有文件名 extensions 关联都参与此 select process。通过使用MultiviewsMatch指令,可以包含或排除仅使用AddHandler,AddInputFilter或AddOutputFilter指令关联的文件名 extensions。
Charset
为了传达这些进一步的信息,Apache 可选择发送Content-Language
标头,以指定文档所在的语言,并可以将附加信息附加到Content-Type
标头上,以指示应该用于正确呈现信息的特定字符集。
Content-Language: en, fr Content-Type: text/plain; charset=ISO-8859-1
语言规范是该语言的 two-letter 缩写。charset
是应该使用的特定字符集的 name。
AddCharset 指令
描述: | 将给定的文件名 extensions 挂接到指定的内容字符集 |
句法: | AddCharset charset extension[extension]... |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
AddCharset
指令 maps 给定的指定内容字符集的给定文件名 extensions(给定字符编码的 Internet 注册 name)。 charset 是包含扩展名的文件名的资源的媒体类型的 charset 参数。此映射将添加到任何已生效的映射中,从而覆盖已存在的同一扩展的任何映射。
例
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
指令对于向 client 通知文档的字符编码以使文档可以被正确解释和显示非常有用,对于内容谈判,服务器根据 client 的 charset 首选项从多个文档中返回一个文档。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。文件名可能有多个 extensions,扩展参数将与每个文件名进行比较。
参见
- mod_negotiation
- AddDefaultCharset
AddEncoding 指令
描述: | 将给定的文件名 extensions 挂接到指定的编码类型 |
句法: | AddEncoding encoding extension[extension]... |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
AddEncoding
指令 maps 给定的 HTTP content-encoding 给定文件名 extensions。 encoding 是 HTTP 内容编码,用于追加以扩展名命名的文档的 Content-Encoding 头字段的 value。此映射将添加到任何已生效的映射中,从而覆盖已存在的同一扩展的任何映射。
例
AddEncoding x-gzip .gz AddEncoding x-compress .Z
这将导致包含.gz
扩展名的文件名使用x-gzip
编码标记为已编码,并且包含.Z
扩展名的文件名将标记为使用x-compress
进行编码。
旧的 clients 期望x-gzip
和x-compress
,但标准规定它们分别等于gzip
和compress
。 Apache 通过忽略任何前导x-
来进行内容编码比较。使用编码进行响应时,Apache 将使用 client 请求的任何格式(i.e.,x-foo
或foo
)。如果 client 没有特别请求特定表单 Apache 将使用AddEncoding
指令给出的表单。为了简化这个长篇故事,你应该总是使用x-gzip
和x-compress
来进行这两个特定的编码。应该在没有x-
的情况下指定更新的编码,例如deflate
。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。文件名可能有多个 extensions,扩展参数将与每个文件名进行比较。
AddHandler 指令
描述: | Maps 文件名 extensions 到指定的处理程序 |
句法: | AddHandler handler-name extension[extension]... |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
具有 name 扩展名的文件将由指定的handler-name提供。此映射将添加到任何已生效的映射中,从而覆盖已存在的同一扩展的任何映射。例如,要激活文件扩展名为.cgi
的 CGI 脚本,您可以使用:
AddHandler cgi-script .cgi
一旦将其放入 httpd.conf 文件中,任何包含.cgi
扩展名的文件都将被视为 CGI 程序。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。文件名可能有多个 extensions,扩展参数将与每个文件名进行比较。
参见
- SetHandler
AddInputFilter 指令
描述: | Maps 文件名 extensions 到将处理 client 请求的过滤器 |
句法: | AddInputFilter filter[;filter...] extension[extension]... |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
AddInputFilter
maps 过滤器的文件扩展名扩展名,当服务器收到它们时,它们将 process client 请求和 POST 输入。这是对其他地方定义的任何过滤器的补充,包括SetInputFilter指令。此映射将合并到任何已有效的映射,覆盖已存在的同一扩展的任何映射。
如果指定了多个过滤器,则它们必须在 order 中用分号分隔,它们应在其中处理内容。过滤器是 case-insensitive。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。文件名可能有多个 extensions,扩展参数将与每个文件名进行比较。
参见
- RemoveInputFilter
- SetInputFilter
AddLanguage 指令
描述: | 将给定的文件扩展名用于指定的内容语言 |
句法: | AddLanguage language-tag extension[extension]... |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
AddLanguage
指令 maps 指定的内容语言的给定文件扩展名。具有文件扩展名的 Files 被赋予与 RFC 3066 定义的语言标识符相对应的的@
例
AddEncoding x-compress .Z AddLanguage en .en AddLanguage fr .fr
然后文档xxxx.en.Z
将被视为压缩的英文文档(文档xxxx.Z.en
也将如此)。虽然向客户端报告了内容语言,但浏览器不太可能使用此信息。AddLanguage
指令对于内容谈判更有用,其中服务器根据 client 的语言首选项从多个文档中返回一个。
如果为同一个扩展名进行了多种语言分配,则遇到的最后一个语言是使用的语言分配。也就是说,对于以下情况:
AddLanguage en .en AddLanguage en-gb .en AddLanguage en-us .en
扩展名为.en
的文档将被视为en-us
。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。文件名可能有多个 extensions,扩展参数将与每个文件名进行比较。
参见
- mod_negotiation
AddOutputFilter 指令
描述: | Maps 文件名 extensions 到将处理来自服务器的响应的过滤器 |
句法: | AddOutputFilter filter[;filter...] extension[extension]... |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
AddOutputFilter
指令 maps 到过滤器的文件扩展名扩展名,它将在处理器发送到 client 之前处理来自服务器的响应。这是在其他地方定义的任何过滤器的补充,包括SetOutputFilter和AddOutputFilterByType指令。此映射将合并到任何已有效的映射,覆盖已存在的同一扩展的任何映射。
例如,以下 configuration 将为 server-side 包括 process 所有.shtml
files,然后使用mod_deflate压缩输出。
AddOutputFilter INCLUDES;DEFLATE shtml
如果指定了多个过滤器,则它们必须在 order 中用分号分隔,它们应在其中处理内容。 filter 参数是 case-insensitive。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。文件名可能有多个 extensions,扩展参数将与每个文件名进行比较。
请注意,在使用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>
参见
- RemoveOutputFilter
- SetOutputFilter
AddType 指令
描述: | 将给定的文件名 extensions 挂接到指定的 content type |
句法: | AddType media-type extension[extension]... |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
AddType
指令 maps 给定的文件名 extensions 到指定的 content type。 media-type 是用于包含扩展名的文件名的媒体类型。此映射将添加到任何已生效的映射中,从而覆盖已存在的同一扩展的任何映射。
建议使用AddType
指令添加新媒体类型,而不是更改TypesConfig文件。
例
AddType image/gif .gif
或者,在一个指令中指定多个文件 extensions:
例
AddType image/jpeg jpeg jpg jpe
扩展参数是 case-insensitive,可以使用或不使用前导点指定。文件名可能有多个 extensions,扩展参数将与每个文件名进行比较。
通过使用qs
限定 media-type,可以实现与mod_negotiation的LanguagePriority类似的效果:
例
AddType application/rss+xml;qs=0.8 .xml
这在情况中很有用,e.g.当 client 请求Accept:*/*
无法实际处理服务器返回的内容时。
该指令主要配置为文件系统提供的静态 files 生成的内容类型。对于静态 files 以外的资源,响应的 generator 通常指定 Content-Type,此指令无效。
注意
如果没有为请求显式设置处理程序,则指定的 content type 也将用作处理程序 name。
当显式指令(如SetHandler或AddHandler)不适用于当前请求时,通常由这些指令设置的内部处理程序 name 将设置为此指令指定的 content type。
这是一些历史行为,某些 third-party 模块(例如 mod_php)可能会使用它来承担匹配请求的责任。
应避免依赖此类“合成”类型的配置。此外,限制对SetHandler或AddHandler的访问的配置也应限制对此指令的访问。
参见
- ForceType 指令
- mod_negotiation
DefaultLanguage 指令
描述: | 定义要在 Content-Language 标头字段中为当前 context 中尚未通过其他方式分配 language-tag 的所有资源发送的默认 language-tag。 |
句法: | DefaultLanguage language-tag |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
DefaultLanguage
指令告诉 Apache 指令范围内的所有资源(e.g.,当前<Directory>容器涵盖的所有资源)没有明确的语言扩展名(例如由AddLanguage配置的.fr
或.de
)应该被分配 Content-Language language-tag。例如,这允许将整个目录树标记为包含荷兰语内容,而无需重命名每个文件。请注意,与使用 extensions 指定语言不同,DefaultLanguage
只能指定一种语言。
如果没有DefaultLanguage
指令生效且文件没有AddLanguage配置的任何语言 extensions,则不会生成 Content-Language 标头字段。
例
DefaultLanguage en
参见
- mod_negotiation
ModMimeUsePathInfo 指令
描述: | 告诉mod_mime将path_info 组件视为文件名的一部分 |
句法: | ModMimeUsePathInfo On\|Off |
默认: | ModMimeUsePathInfo Off |
Context: | 目录 |
状态: | Base |
模块: | mod_mime |
ModMimeUsePathInfo
指令用于将文件名与path_info
URL component 组合以将mod_mime的指令应用于请求。默认 value 为Off
-因此,忽略path_info
component。
当您拥有虚拟文件系统时,建议使用此指令。
例
ModMimeUsePathInfo On
如果您有/index.php/foo.shtml
mod_mime的请求,现在将传入的请求视为/index.php/foo.shtml
,而像AddOutputFilter INCLUDES .shtml
这样的指令会将INCLUDES
过滤器添加到请求中。如果未设置ModMimeUsePathInfo
,则不会添加INCLUDES
过滤器。这类似于虚拟_path,例如由<Location>
定义的那些
参见
- 中的 AcceptPathInfo
Multiviews 匹配指令
描述: | 在使用 MultiViews 搜索匹配文件时将包含的 files 类型 |
句法: | MultiviewsMatch Any\|NegotiatedOnly\|Filters\|Handlers[Handlers\|Filters] |
默认: | MultiviewsMatch NegotiatedOnly |
Context: | server config,virtual host,directory,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
MultiviewsMatch
允许mod_negotiation的 Multiviews feature 有三种不同的行为。多视图允许请求文件 e.g.index.html
,_匹配基本请求后的任何协商的 extensions,e.g.index.html.en
,index.html.fr
或index.html.gz
。
NegotiatedOnly
选项规定,base name 之后的每个扩展都必须与内容 negotiation,e.g 的已识别mod_mime扩展名相关联。字符集,Content-Type,语言或编码。这是最严格的 implementation,具有最少的意外副作用,并且是默认行为。
要包含与 Handlers and/or Filters 关联的 extensions,请将MultiviewsMatch
指令设置为Handlers
,Filters
或两个选项关键字。如果所有其他因素相同,则将提供最小的文件 e.g.在决定index.html.cgi
的 500 字节和index.html.pl
的 1000 字节之间,.cgi
文件将在此 example 中获胜。如果.asis
files 与asis-handler
相关联,.asis
files 的用户可能更喜欢使用 Handler 选项。
您最终可以允许Any
extensions 到 match,即使mod_mime无法识别扩展名。这可能会导致不可预测的结果,例如提供网站管理员从未期望过的.old 或.bak files。
对于 example,以下 configuration 将允许处理程序和过滤器参与 Multviews,但将排除未知的 files:
MultiviewsMatch Handlers Filters
在<Location>或<LocationMatch>部分中不允许MultiviewsMatch
。
参见
- 选项
- mod_negotiation
RemoveCharset 指令
描述: | 删除一组文件 extensions 的任何字符集关联 |
句法: | RemoveCharset extension[extension]... |
Context: | 虚拟 host,目录,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
RemoveCharset
指令使用给定的 extensions 删除 files 的任何字符集关联。这允许子目录中的.htaccess
files 撤消从 parent 目录或服务器 config files 继承的任何关联。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。
例
RemoveCharset .html .shtml
RemoveEncoding 指令
描述: | 删除一组文件 extensions 的任何内容编码关联 |
句法: | RemoveEncoding extension[extension]... |
Context: | 虚拟 host,目录,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
RemoveEncoding
指令使用给定的 extensions 删除 files 的所有编码关联。这允许子目录中的.htaccess
files 撤消从 parent 目录或服务器 config files 继承的任何关联。它的一个例子可能是:
/foo/.htaccess:
AddEncoding x-gzip .gz AddType text/plain .asc <Files "*.gz.asc"> RemoveEncoding .gz </Files>
这将导致foo.gz
被标记为使用 gzip 方法进行编码,但foo.gz.asc
被标记为未编码的纯文本文件。
注意
RemoveEncoding
指令在任何AddEncoding指令之后处理,因此如果两者都出现在同一目录 configuration 中,它们可能会撤消后者的影响。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。
RemoveHandler 指令
描述: | 删除一组文件 extensions 的任何处理程序关联 |
句法: | RemoveHandler extension[extension]... |
Context: | 虚拟 host,目录,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
RemoveHandler
指令使用给定的 extensions 删除 files 的所有处理程序关联。这允许子目录中的.htaccess
files 撤消从 parent 目录或服务器 config files 继承的任何关联。它的一个例子可能是:
/foo/.htaccess:
AddHandler server-parsed .html
/foo/bar/.htaccess:
RemoveHandler .html
这样可以将/foo/bar
目录中的.html
files 返回到正常的 files,而不是作为解析的候选者(参见mod_include模块)。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。
RemoveInputFilter 指令
描述: | 删除一组文件 extensions 的任何输入过滤器关联 |
句法: | RemoveInputFilter extension[extension]... |
Context: | 虚拟 host,目录,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
RemoveInputFilter
指令使用给定的 extensions 删除 files 的任何输入过滤关联。这允许子目录中的.htaccess
files 撤消从 parent 目录或服务器 config files 继承的任何关联。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。
参见
- AddInputFilter
- SetInputFilter
RemoveLanguage 指令
描述: | 删除一组文件 extensions 的任何语言关联 |
句法: | RemoveLanguage extension[extension]... |
Context: | 虚拟 host,目录,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
RemoveLanguage
指令使用给定的 extensions 删除 files 的任何语言关联。这允许子目录中的.htaccess
files 撤消从 parent 目录或服务器 config files 继承的任何关联。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。
RemoveOutputFilter 指令
描述: | 删除一组文件 extensions 的任何输出过滤器关联 |
句法: | RemoveOutputFilter extension[extension]... |
Context: | 虚拟 host,目录,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
RemoveOutputFilter
指令使用给定的 extensions 删除 files 的任何输出过滤关联。这允许子目录中的.htaccess
files 撤消从 parent 目录或服务器 config files 继承的任何关联。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。
例
RemoveOutputFilter shtml
参见
- AddOutputFilter
RemoveType 指令
描述: | 删除一组文件 extensions 的任何 content type 关联 |
句法: | RemoveType extension[extension]... |
Context: | 虚拟 host,目录,.htaccess |
覆盖: | FileInfo |
状态: | Base |
模块: | mod_mime |
RemoveType
指令使用给定的 extensions 删除 files 的任何媒体类型关联。这允许子目录中的.htaccess
files 撤消从 parent 目录或服务器 config files 继承的任何关联。它的一个例子可能是:
/foo/.htaccess:
RemoveType .cgi
这将删除/foo/
目录及其下任何位置的.cgi
files 的任何特殊处理,导致包含这些 files 的响应省略 HTTP Content-Type 标头字段。
注意
RemoveType
指令在任何将 AddType指令之后处理,因此如果两者都出现在同一目录 configuration 中,它们可能会撤消后者的影响。
扩展参数是 case-insensitive,可以使用或不使用前导点指定。
TypesConfig 指令
描述: | mime.types 文件的位置 |
句法: | TypesConfig file-path |
默认: | TypesConfig conf/mime.types |
Context: | 服务器配置 |
状态: | Base |
模块: | mod_mime |
TypesConfig
指令设置媒体类型 configuration 文件的位置。 File-path 是相对于ServerRoot的。此文件将默认的映射列表从 filename extensions 设置为内容类型。大多数管理员使用 OS 提供的mime.types
文件,该文件将 common filename extensions 与http://www.iana.org/assignments/media-types/index.html维护的 IANA 注册媒体类型的官方列表以及大量非官方类型相关联。这通过提供大多数 media-type 定义简化了httpd.conf
文件,并且可以根据需要被将 AddType指令覆盖。您不应编辑mime.types
文件,因为升级服务器时可能会替换它。
该文件包含指令的 arguments 格式的 lines:
media-type[extension]...
扩展的情况无关紧要。将忽略空白 lines 和以哈希字符(#
开头)的 lines。空行是为了完整性(mime.types 文件)。 Apache httpd 仍然可以使用mod_mime_magic确定这些类型。
请不要**向 Apache HTTP Server 项目发送请求以在分布式mime.types
文件中添加任何新条目,除非(1)它们已经在 IANA 注册,并且(2)它们在平台上使用广泛接受的 non-conflicting 文件名 extensions 。category/x-subtype
请求将被自动拒绝,任何新的 two-letter extensions 都将被自动拒绝,因为它们可能会在以后与已经拥挤的语言和字符集命名空间发生冲突。
参见
- mod_mime_magic