我有一台 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。