让 Apache 识别没有扩展名的 MIME 类型的文件

让 Apache 识别没有扩展名的 MIME 类型的文件

我有一些别人在其他地方创建的旧 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如果您在上述位置找不到它,请尝试一下。

相关内容