Apache gibt bei einigen PNG-Dateien Text/HTML zurück

Apache gibt bei einigen PNG-Dateien Text/HTML zurück

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- AddHandlerDirektive- dient zur Zuordnung des PHP-Interpreters zu .php-Dateien - unterstütztMehrere Erweiterungen, und pear.php.net.pngwurde mit drei Erweiterungen angezeigt: .php, .netund .png. .phpwar die erste, die vom PHP-Interpreter aufgerufen wurde.

text/htmlwurde 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.

verwandte Informationen