Nginx 字元集指令無法修改 Content-Type 標頭

Nginx 字元集指令無法修改 Content-Type 標頭

我知道設定檔的 http 或伺服器區塊中的“charset utf-8”指令應該會讓 nginx 包含“Content-Type: text/html; charset=utf-8” 在回應的標頭中,而不僅僅是“Content-Type: text/html”。

但是,我已將該指令新增至 http 區塊和適用的伺服器區塊中,並且「Content-Type」指令保持不變。

採取的預防措施包括: 1. 每次設定變更後重新載入或重新啟動 nginx。 2. 包括“charset_types text/html text/plain;”之前的指令。 3. 進行不相關的配置變更並驗證其是否具有預期效果。

我查看了這裡和nginx文件的相關討論,但沒有找到任何解釋。

答案1

charset utf-8;

在你的 server{} 區塊中應該是你需要做的全部事情。基於此處的 nginx 文檔

http://nginx.org/en/docs/http/ngx_http_charset_module.html#source_charset

您可以將其放置在 http、伺服器或位置上下文中。

答案2

感謝您的答覆。我終於意識到我正在查看 301 回應的標頭。不含尾部斜線的 URL 將重定向到帶有尾部斜杠的相同 URL。 301 回應的內容類型為「text/html」。但是重定向後的以下回應有“text/html; charset=utf-8”作為其內容類型。我不知道 301 回應聲明 charset 參數有多大用處,但是,由於它確實聲明了 text/html 作為內容類型,如果 nginx 配置在 http 區塊中設定了 charset,我們不應該期望 charset 301回應中也有嗎? nginx 版本是 1.10.3 (Ubuntu)。

相關內容