Я установил сервер Apache 2.4 на AddDefaultCharset utf-8
в httpd.conf и моем .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.
Кто-нибудь знает, как обеспечить, чтобы все HTTP-ответы с перенаправлением URL-адресов были в UTF-8?
Казалось бы, это поведение по умолчанию, поскольку ответ перенаправления Apache кодируется как ISO-8859-1. Однако Apache позволяет подавлять в charset
параметр в ответе, установив suppress-error-charset
переменная окружения:
# set desired env variable to suppress iso-8859-1 charset
SetEnvIf Host ^ suppress-error-charset
Однако не может быть изменено на другую кодировку.
Ссылка:
Я нашел способ изменить кодировку вместо ее удаления:
Header always edit Content-Type 'iso-8859-1' 'utf-8'
Это будет применяться ко всем запросам, но если вы не используете ISO-8859-1, это не проблема.