Apache-2.2

Apache Content-Type 編碼從目錄到目錄從 UTF-8 更改為 iso-88591

  • May 4, 2011

我有一個在 Apache 2.2.8 (Plesk 9.5.4) 上執行的站點

對於這個站點,有一個奇怪的行為,根目錄只有 html,並且帶有以下標頭,非常棒。

http://globalmit.com/

響應標頭

日期 2011 年 5 月 4 日星期三 00:57:26 GMT

伺服器 Apache

Last-Modified 星期一 2011 年 4 月 4 日 21:09:05 GMT

Etag “15013bf-5a7-4a01e2b6efe40”

Accept-Ranges 字節

Cache-Control max-age=300

Expires Wed, 04 May 2011 01:02:26 GMT

Vary Accept-Encoding

Content-Encoding gzip

Content-Length 564

Content-Type text/html; 字元集=utf-8

然後我在這個目錄上安裝了 osTickets,我把它翻譯成西班牙語,為了讓它工作,內容類型編碼需要設置為 UTF-8,它工作得很好。

http://globalmit.com/tickets/

響應標頭

日期 Wed, 04 May 2011 01:04:37 GMT

Server Apache

Expires Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control no-store, no-cache, must -revalidate, post-check=0, pre-check=0

Pragma no-cache

Vary Accept-Encoding

Content-Encoding gzip

Keep-Alive timeout=15, max=100

Connection Keep-Alive

Transfer-Encoding chunked

Content-Type text/html ; 字元集=UTF-8

這個目錄的問題來了,osTickets的管理面板,Apache無緣無故將編碼更改為iso-8859-1。

我嘗試將 AddDefaultCharset UTF-8 添加到 Apache 虛擬目錄配置文件中,添加具有相同 AddDefaultCharset UTF-8 的 .htaccess 文件,但我沒有運氣。

http://globalmit.com/tickets/scp/

響應標頭

日期 Wed, 04 May 2011 01:05:26 GMT

Server Apache

Expires Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control no-store, no-cache , must-revalidate, post-check=0, pre-check=0

Pragma no-cache

Vary Accept-Encoding

Content-Encoding gzip

Keep-Alive timeout=15, max=100

Connection Keep-Alive

Transfer-Encoding chunked

Content-Type text /html; 字元集=iso-8859-1

如何避免這種奇怪的 Apache 行為?

Apache 行為正確;PHP 不是。

不幸的是,由於所有字元串數據都是由 PHP 生成的,因此您在很大程度上依賴於您正在執行的應用程序是否具有良好的字元集支持 - 查看您是否可以在應用程序中修改任何設置以啟用 UTF -8 支持。

引用自:https://serverfault.com/questions/266019