描述: | 通过查看文件内容的几个字节来确定文件的MIME类型 |
---|---|
状态: | 延期 |
模块标识符: | mime_magic_module |
源文件: | mod_mime_magic.c |
该模块以与Unix 命令相同的方式确定文件
的MIME类型file(1)
:它查看文件的前几个字节。它旨在作为mod_mime
无法解决的案件的“第二道防线” 。
该模块来自file(1)
Unix命令的免费版本,该
命令使用“幻数”和文件内容中的其他提示来确定内容是什么。仅当MimeMagicFile
指令指定了magic文件时,此模块才处于活动状态。
文件的内容是4-5列中的纯ASCII文本。允许使用空行,但可以忽略。带注释的行使用井号(#
)。其余各行针对以下各列进行了解析:
柱 | 描述 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1个 | 从 “ > ” 开始检查的字节数表示对先前非“ > ”行的依赖 | ||||||||||||||||||||||
2 | 要匹配的数据类型
| ||||||||||||||||||||||
3 | 要匹配的数据内容 | ||||||||||||||||||||||
4 | MIME类型(如果匹配) | ||||||||||||||||||||||
5 | MIME编码(如果匹配)(可选) |
例如,以下魔术文件行将识别某些音频格式:
# Sun/NeXT audio data 0 string .snd >12 belong 1 audio/basic >12 belong 2 audio/basic >12 belong 3 audio/basic >12 belong 4 audio/basic >12 belong 5 audio/basic >12 belong 6 audio/basic >12 belong 7 audio/basic >12 belong 23 audio/x-adpcm
否则这些将识别出*.doc
包含Microsoft Word或FrameMaker文档的文件之间的区别。(这些是不兼容的文件格式,它们使用相同的文件后缀。)
# Frame 0 string \<MakerFile application/x-frame 0 string \<MIFFile application/x-frame 0 string \<MakerDictionary application/x-frame 0 string \<MakerScreenFon application/x-frame 0 string \<MML application/x-frame 0 string \<Book application/x-frame 0 string \<Maker application/x-frame # MS-Word 0 string \376\067\0\043 application/msword 0 string \320\317\021\340\241\261 application/msword 0 string \333\245-\0\0\0 application/msword
第五列可以包含可选的MIME编码。例如,这可以识别压缩的文件并为其设置编码。
# gzip (GNU zip, not to be confused with # [Info-ZIP/PKWARE] zip archiver) 0 string \037\213 application/octet-stream x-gzip
此模块不适用于每个系统。如果您的系统几乎无法满足其负载要求,或者您正在执行Web服务器基准测试,则可能不希望启用此功能,因为处理不是免费的。
但是,已努力提高原始file(1)
代码的性能,以使其适合繁忙的Web服务器。它是为服务器设计的,那里有成千上万的用户发布自己的文档。这在Intranet上可能很常见。很多时候,如果服务器可以对文件内容做出比文件名所允许的更多的智能决策,这将很有帮助……即使只是为了减少当用户不正确地命名自己的文件时“为什么我的页面无法工作”的调用。您必须确定额外的工作是否适合您的环境。
以下注释适用于该mod_mime_magic
模块,并包含在此处以符合贡献者要求得到其承认的版权限制。
mod_mime_magic:通过文件魔术数字查找MIME类型
版权所有(c)1996-1997 Cisco Systems,Inc.
该软件由Cisco Systems在1997年7月提交给Apache Group。此源代码的未来修订版和派生物必须承认Cisco Systems是该模块的原始贡献者。所有其他许可和使用条件均为Apache Group的许可和使用条件。
此代码中的某些代码源自最初发布到comp.sources.unix的file命令的免费版本。该程序的版权信息如下。
-版权所有(c)Ian F. Darwin,1987年。由Ian F. Darwin撰写。
该软件不受美国电话电报公司或加利福尼亚大学董事会的任何许可。
任何人均有权在任何计算机系统上出于任何目的使用本软件,并对其进行更改和自由重新分发,但要遵守以下限制:
为了符合达尔文先生的条款:此命令已从免费的“文件”命令中进行了非常显着的修改。
realloc()
。描述: | 使用指定的魔术文件根据文件内容启用MIME类型确定 |
---|---|
句法: | MimeMagicFile file-path |
内容: | server config, virtual host |
Status: | Extension |
Module: | mod_mime_magic |
The MimeMagicFile
directive can be used to
enable this module, the default file is distributed at
conf/magic
. Non-rooted paths are relative to the
ServerRoot
. Virtual hosts will use
the same file as the main server unless a more specific setting is
used, in which case the more specific setting overrides the main
server's file.
MimeMagicFile conf/magic