我有一些别人在其他地方创建的旧 HTML 文件。出于某种原因,其中许多文件没有 .html 扩展名。如果可能的话,我不想更改它们,但出于某种原因,Apache 似乎无法使用任何 MIME 魔法来确定它们的文件类型。我有mime_magicmod 已启用,以及以下内容站点部分:
MimeMagicFile /etc/magic
我应该指出,我在这台机器上使用 Debian Linux。
答案1
我尝试在主配置文件中使用 DefaultType 解决方法,但不起作用。(我的环境是内部的、彻底破解的 Apache 版本,因此可能存在 FileInfo 指令或某些覆盖 DefaultType 的内容,但我找不到它。在标准安装中,它可能有效...)
什么有效:由于我处理的所有无扩展名文件都在一个已知目录中,因此我添加了位置块并使用了 ForceType:
<Location "/directoryname">
ForceType text/plain
</Location>
您不能在应该包含多种类型文件的目录上使用 ForceType。
答案2
假设所有不包含句点的文件都是 PHP:
<FilesMatch "^[^\.]+$">
ForceType application/x-httpd-php
</FilesMatch>
答案3
一个简单的解决方法,也许不是一个真正的解决方案,就是改变默认类型如下:
默认类型 text/html
这将确保每个无法识别的文件都将被视为 html。
我再说一遍,这不是一个真正的解决方案,但它很简单,如果你的服务器主要提供 html 内容,那么它可能是有道理的
答案4
在我看来你正在使用系统魔法文件,当你想使用哑剧魔法文件 — 正如 Apache 配置指令“MimeMagicFile”的名称所暗示的那样。尝试以下操作:
MimeMagicFile /usr/share/mime/magic
当然,请确保这是您系统的正确路径 — 我没有 Debian 系统可以测试,但我希望它在那里。locate mime/magic
如果您在上述位置找不到它,请尝试一下。