我有一些其他人创build的旧HTML文件。 他们中的许多人由于某种原因不具备扩展名.html。 如果可能的话,我不想修改它们,但由于某种原因,Apache似乎无法通过MIME的魔法来找出它们的文件types。 我已经启用了mime_magic mod,以及在网站部分的以下内容:
MimeMagicFile /etc/magic
我应该注意到,我在这台机器上使用了Debian Linux。
我在我的主要conf文件中尝试了DefaultType解决方法,它不适合我。 (我的环境是Apache的内部彻底破解版本,所以可能有一个FileInfo指令或重写DefaultType的东西,我无法find它。在标准的安装它可能工作…)
什么DID的工作:因为我处理的所有无扩展文件都在一个已知的目录中,我添加了一个位置块,并使用ForceType:
<Location "/directoryname"> ForceType text/plain </Location>
您不能在包含多种types的文件的目录上使用ForceType。
假设所有不包含句点的文件都是PHP:
<FilesMatch "^[^\.]+$"> ForceType application/x-httpd-php </FilesMatch>
一个简单的warkaround,也许不是一个解决scheme,可能是改变DefaultType如下:
DefaultType文本/ HTML
这将确保每个不被认可的文件将被视为HTML。
我再说一遍,这不是一个真正的解决scheme,但它很简单,如果您的服务器主要提供html内容,则可能有意义
Debian中的魔术文件path是/usr/share/file/magic 。 将configuration语句更改为
MimeMagicFile /usr/share/file/magic
如果使用文本编辑器打开/etc/magic ,则可以看到解释file(1)的注释只应该将该文件用于本地魔术定义。
在我看来,当你想要使用MIME魔术文件时,你正在使用SYSTEM魔术文件 – 作为Apacheconfiguration指令“MimeMagicFile”暗示的名称。 尝试这个:
MimeMagicFile /usr/share/mime/magic
当然,确保你的系统是正确的path – 我没有一个Debian系统来testing,但我希望它在那里。 尝试locate mime/magic如果你不能在上述位置find它。