1

用户可以将图像上传到我的站点并为其命名(通常没有 .png 或 .jpg 扩展名)。当图像由 IMG 标记提供时,此方法有效。显然不需要 MIME 类型。浏览器可以处理它,因为它们知道它必须是图像。但是,当直接查看图像时,Apache 将图像作为text/plain.

现在,我可以使用 mod_rewrite 来提供适当的 MIME 类型,但是如何编写规则来确定文件的 MIME 类型呢?

RewriteEngine on
RewriteCond something something involving grep, file, or whatever?
RewriteRule ^.* - [last,type=image/png]

我当前的解决方案偶尔会提供错误的 MIME 类型(显然没有造成伤害):

RewriteEngine on

# do nothing with .png, .jpg, .svgz, etc files                              
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .*\.....? - [last]

# add an image MIME type in order to force something other than text/plain  
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [last,type=image/png]
4

0 回答 0