AddDefaultCharset utf-8
我已在 httpd.conf 中将Apache 2.4 服务器设置为,并且我的.htaccess
文件将所有非 www 重定向http
到https://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,这并不是什么问题。