htaccess 重定向更改 HTML 响应的编码

htaccess 重定向更改 HTML 响应的编码

AddDefaultCharset utf-8我已在 httpd.conf 中将Apache 2.4 服务器设置为,并且我的.htaccess文件将所有非 www 重定向httphttps://www.example.com

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https//www.example.com/$1 [R=301,L,NE]

如果我查看 HTTP 响应标头,则只有发送到的流量https://www.example.com才会生成 UTF-8 响应。非 www 和 http 流量使用 ISO-8859-1 字符集进行响应。

有人知道如何确保所有 URL 重定向 HTTP 响应都采用 UTF-8 吗?

答案1

这似乎是默认行为,因为 Apache 重定向响应被编码为 ISO-8859-1。但是,Apache 允许您压制charset通过设置环境变量来响应中的参数suppress-error-charset

# set desired env variable to suppress iso-8859-1 charset
SetEnvIf Host ^ suppress-error-charset

然而,已更改更改为不同的字符集。

参考:

答案2

我找到了一种改变字符集而不是删除它的方法:

Header always edit Content-Type 'iso-8859-1' 'utf-8'

这将适用于所有请求,但如果您不使用 ISO-8859-1,这并不是什么问题。

相关内容