Apache 2.4设置没有扩展名的mime类型的文件

Jon*_*ton 12 apache mime mime-types

我已经在RedHat 6.4服务器上从Apache 2.2升级到2.4,并遇到了mime类型的问题.

Apache有一个DefaultType指令.在Apache 2.2中,我将其设置为"text/plain".我有一个网页,列出给定目录中的所有文件,用户可以单击查看文件.此目录包含所有类型的不同文件扩展名和一些没有扩展名的文件.单击文件时,它将在一个格式良好的新窗口中打开.没有任何代码这样做.严格来说,浏览器打开文件并根据其内容类型决定要做什么.

该指令已在Apache 2.4中禁用.Apache文档网站指示用户使用mime.types配置文件和AddType指令来配置媒体类型.

我的问题是如何将"text/plain"mime类型分配给没有扩展名的文件?在Apache 2.2中,默认情况下,这些文件将通过DefaultType指令赋予"text/plain"内容类型.在Apache 2.4中我无法弄清楚如何执行此操作,因为我不能再使用此指令了.我不想使用ForceType指令,因为它会覆盖其他已经定义的mime类型.

我可以创建一个加载文件并分配内容类型的php包装器,但我更喜欢将逻辑保存在所有其他mime类型定义所在的apache中.

任何帮助,将不胜感激.如果需要其他信息,请告诉我.

Mic*_*lan 9

仅限无扩展文件

此解决方案仅影响无扩展,静态服务的文件:(信用Eugene Kerner)

<FilesMatch "^[^.]+$">
    ForceType text/plain
    </FilesMatch>
Run Code Online (Sandbox Code Playgroud)

任何未知的内容

这个会影响任何在没有Content-Type标题的情况下传输的响应.换句话说,它模仿旧DefaultType指令的行为:

Header set Content-Type "text/plain" "expr=-z %{CONTENT_TYPE}"
Run Code Online (Sandbox Code Playgroud)

应该可以setifempty在这里使用而不是-z表达式.但它失败并覆盖每个响应中的标题,空或不.我不知道为什么. Eric Covener说这是因为Content-Type标题没有添加到"最后一秒".