我有一些由其他人在其他地方创建的旧 HTML 文件。出于某种原因,它们中的许多都没有 .html 扩展名。如果可能的话,我不想更改它们,但由于某种原因,Apache 似乎无法使用任何 MIME 魔法来确定它们的文件类型。我启用了mime_magic mod,以及站点部分中的以下内容:
MimeMagicFile /etc/magic
我应该注意我在这台机器上使用 Debian Linux。
我有一些由其他人在其他地方创建的旧 HTML 文件。出于某种原因,它们中的许多都没有 .html 扩展名。如果可能的话,我不想更改它们,但由于某种原因,Apache 似乎无法使用任何 MIME 魔法来确定它们的文件类型。我启用了mime_magic mod,以及站点部分中的以下内容:
MimeMagicFile /etc/magic
我应该注意我在这台机器上使用 Debian Linux。
我在我的主 conf 文件中尝试了 DefaultType 解决方法,但它对我不起作用。(我的环境是 Apache 的内部、彻底破解的版本,因此可能有 FileInfo 指令或覆盖 DefaultType 的东西,我找不到它。在标准安装中它可能工作......)
什么 DID 工作:因为我正在处理的所有无扩展名文件都在一个已知目录中,所以我添加了一个 Location 块并使用了 ForceType:
您不能在应该包含一种以上文件类型的目录上使用 ForceType。
假设所有不包含句点的文件都是 PHP:
一个简单的解决方法,可能不是真正的解决方案,将DefaultType更改如下:
这将确保每个不可识别的文件都将被视为 html。
这不是一个真正的解决方案,我再说一遍,但如果您的服务器主要提供 html 内容,它很简单并且可能有意义
神奇的文件路径
/usr/share/file/magic
在 Debian 中。将配置语句更改为如果您
/etc/magic
使用文本编辑器打开,您可以看到注释说明file(1)
应该将该文件仅用于您的本地魔术定义。在我看来,当您想使用MIME魔术文件时,您正在使用SYSTEM魔术文件——正如 Apache 配置指令“MimeMagicFile”的名称所暗示的那样。尝试这个:
当然,请确保那是您系统的正确路径——我没有 Debian 系统可供测试,但我希望它会在那里。
locate mime/magic
如果在上述位置找不到,请尝试。