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

sup*_*tah 5 linux debian mime apache-2.2

我有一些由其他人在别处创建的旧 HTML 文件。由于某种原因,其中许多没有 .html 扩展名。如果可能,我不想更改它们,但出于某种原因,Apache 似乎无法执行任何 MIME 魔术来确定它们的文件类型。我启用了mime_magic mod,以及站点部分中的以下内容:

    MimeMagicFile /etc/magic
Run Code Online (Sandbox Code Playgroud)

我应该注意到我在这台机器上使用 Debian Linux。

小智 6

我在主 conf 文件中尝试了 DefaultType 解决方法,但它对我不起作用。(我的环境是 Apache 的内部、彻底修改过的版本,因此可能有 FileInfo 指令或覆盖 DefaultType 的东西,但我找不到它。在标准安装中它可能会工作......)

什么工作:因为我处理的所有无扩展名文件都在一个已知目录中,所以我添加了一个位置块并使用了 ForceType:

<Location "/directoryname">
ForceType text/plain
</Location>
Run Code Online (Sandbox Code Playgroud)

您不能在应该包含一种以上文件类型的目录上使用 ForceType。


小智 5

假设所有不包含句点的文件都是 PHP:

      <FilesMatch "^[^\.]+$">
              ForceType application/x-httpd-php
      </FilesMatch>
Run Code Online (Sandbox Code Playgroud)


drA*_*erT 2

一个简单的解决方法(可能不是真正的解决方案)是更改 DefaultType,如下所示:

默认类型 text/html

这将确保每个无法识别的文件都将被视为 html。

我再说一遍,这不是一个真正的解决方案,但它很简单,并且如果您的服务器主要提供 html 内容,则可能有意义