
Ich habe einen Apache-Webserver mit einem Unterordner für Bilder. Aus irgendeinem Grund werden einige der PNG-Dateien als Text/HTML und nicht als Bild/PNG zurückgegeben.
Es gibt keine Hinweise auf ein Berechtigungsproblem und die Dateien werden mit dem Code 200 und in voller Größe zurückgegeben. Ich habe sichergestellt, dass image/png eingestellt ist und habe sogar versucht, es mit .htaccess zu erzwingen
Irgendeine Idee, wo Sie als nächstes suchen sollen?
Bearbeiten: sieht aus wie ein .htaccess-Konfigurationsproblem in einem übergeordneten Verzeichnis.
Antwort1
Haben Sie sichergestellt, dass PNG-Dateien gültige Bilddateien sind? Wenn Sie auf einer Linux-Plattform arbeiten, können Sie den Befehl file ausprobieren
file somefile.png
Der Befehl sollte etwa Folgendes zurückgeben:
PNG image data, 318 x 15, 8-bit/color RGB, non-interlaced
Sie können auch versuchen, die Datei mit einem Bildbetrachter anzuzeigen.
Antwort2
Das Problem bestand für mich darin, dass die zu liefernde Bilddatei den Namen hatte pear.php.net-sos8j3lis2j.png
.
Apache- AddHandler
Direktive- dient zur Zuordnung des PHP-Interpreters zu .php-Dateien - unterstütztMehrere Erweiterungen, und pear.php.net.png
wurde mit drei Erweiterungen angezeigt: .php
, .net
und .png
. .php
war die erste, die vom PHP-Interpreter aufgerufen wurde.
text/html
wurde dann entweder von Apache oder PHP gesendet, ich weiß es nicht.
Was ich tun musste, um das Problem zu beheben:
Ersetzen Sie alle Vorkommen von
AddHandler php-cgi .php
mit
<FilesMatch \.php$>
SetHandler php-cgi
</FilesMatch>
Antwort3
Suchen Sie möglicherweise nach .png, .PNG, .pNG und .PNg.