Apache 在某些 png 文件上返回文本/html

Apache 在某些 png 文件上返回文本/html

我有一台 Apache Web 服务器,其中有一个用于存放图片的子文件夹。出于某种原因,一些 .png 文件以 text/html 而不是 image/png 的形式返回。

没有任何迹象表明存在权限问题,文件返回代码 200 且大小完整。我确保已设置 image/png,甚至尝试使用 .htaccess 强制执行

知道下一步该看哪儿吗?

编辑:看起来像父目录中的 .htaccess 配置问题。

答案1

你确定 png 文件是有效的图像文件吗?如果你在 Linux 平台上,你可以尝试 file 命令

file somefile.png

该命令应该返回类似以下内容的内容

PNG image data, 318 x 15, 8-bit/color RGB, non-interlaced

您也可以尝试使用图像查看器查看该文件。

答案2

对我来说,问题在于需要传送的图像文件名为pear.php.net-sos8j3lis2j.png

Apache 的AddHandler指令- 用于将 PHP 解释器分配给 .php 文件 - 支持多个扩展,并被pear.php.net.png视为具有三个扩展名:.php.net.png.php是第一个,用于调用 php 解释器。

text/html然后由 apache 或 PHP 发送出去,我不知道。


我需要做什么来解决这个问题:

替换所有实例

AddHandler php-cgi .php

<FilesMatch \.php$>
    SetHandler php-cgi
</FilesMatch>

答案3

也许寻找.png、.PNG、.pNG 和 .PNg。

相关内容