As per my understanding, the following condition should work
RewriteCond %{HTTP_HOST} ^www\. [NC]
Sim, isso "funciona". No entanto, sua primeira condição :
RewriteCond %{HTTP:X-Forwarded-Proto} =http
garante que a diretiva seja processada apenas para solicitações HTTP.
Se você está usando o Elastic Beanstalk , então eu não acredito que você deveria estar verificando %{HTTPS}
de qualquer maneira (pelo menos você não precisa ) - desde sempre será off
. Você pode resolver seu problema removendo essa verificação redundante e movendo o sinalizador OR
para a primeira condição. Por exemplo:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
( Além disso: você precisa ser cuidadoso ao verificar os %{HTTP:X-Forwarded-Proto}
e %{HTTPS}
, pois isso poderia permitir que alguém ignorasse seu redirecionamento se não fosse veiculado por trás de um proxy. Se você não estiver veiculando seu conteúdo por trás de um proxy, então você não deve estar verificando %{HTTP:X-Forwarded-Proto}
.)