Apache 在某些 png 檔案上傳回 text/html

Apache 在某些 png 檔案上傳回 text/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.

阿帕契的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。

相關內容