htaccess redirect altera a codificação da resposta HTML

2

Eu configurei o servidor Apache 2.4 como AddDefaultCharset utf-8 no httpd.conf e meu arquivo .htaccess redireciona todos os não-www e http para 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]

Se eu olhar para o cabeçalho de resposta HTTP, somente o tráfego enviado para https://www.example.com gerará uma resposta UTF-8. O tráfego não-www e http responde com o conjunto de caracteres ISO-8859-1.

Alguém sabe como garantir que todas as respostas HTTP de redirecionamento de URL estejam em UTF-8?

    
por user46688 08.01.2017 / 22:45

2 respostas

3

Isso parece ser um comportamento padrão, já que a resposta de redirecionamento do Apache é codificada como ISO-8859-1. No entanto, o Apache permite que você suprima o parâmetro charset na resposta definindo a variável de ambiente suppress-error-charset :

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

No entanto, não pode ser alterado para um conjunto de caracteres diferente.

Referência:

por 09.01.2017 / 01:12
2

Eu encontrei uma maneira de alterar o charset em vez de removê-lo:

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

Isso se aplicará a todas as solicitações, mas se você não estiver usando o ISO-8859-1, isso não será um problema.

    
por 24.02.2018 / 23:14