用户可以将图像上传到我的站点并为其命名(通常没有 .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]