如何检测文件的MIME类型并使用Apache相应地提供它?

时间:2013-02-15 09:25:34

标签: apache mod-rewrite apache2

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

0 个答案:

没有答案