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