我正在开发一个 Web 应用程序,该应用程序需要在静态 URL 上提供许多不断更新的文档,但是文档的 Content-Type 不同(它是 JPEG 或 SVG)。如果文档是符号链接,则链接末尾的文件具有 MIME 类型映射的正确文件扩展名,但我无法确定是否可以在查找扩展名之前让 Apache 跟随链接在 MIME 表中。
这个问题问同样的问题,但提供的解决方法对我不起作用,因为如果我提供图像/jpeg(它们会自动检测 GIF 和 PNG),浏览器不会自动检测 SVG,所以我需要一个正确的 MIME 类型。
通常,我会为此使用 .meta 文件和mod_cern_meta,但我的目标 Linux 发行版(Fedora 19/20,RHEL 7)不附带这个,我想避免自己提供它。我认为我不能使用 mod_headers,因为它需要我重写整个 .htaccess 文件(这些文件是单独更改的),也不能使用 mod_asis,因为数据文件本身是使用第三方工具生成的。
编辑:我正在通过将我的文件编写为类型映射(只有一个条目)、指向实际资源并列出其 Content-Type 来解决这个问题。这意味着必须编写额外的文件,但使用 mod_meta 也是如此。暂时工作得很好。
你试过mod_mime_magic吗?启用此模块后,apache 可以像“file”命令一样猜测内容类型,并将正确设置内容类型标头。
检查 centos httpd 安装的默认配置,mod_mime_magic 似乎默认启用,并且当(例如)请求以符号链接(即“aaaa”)为目标时,内容类型设置正确,比方说,.png 文件.
此外,确保您为包含符号链接的根目录启用了以下符号链接选项(或仅为整个文档根启用它)
为简洁起见,我将包含一些 apache httpd 的配置提示,以使 mime 发挥作用:
如何让您的静态 URL 不直接指向文档,而是指向设置正确 Content-Type 标头然后流式传输文档的简单脚本?