redirecionamento de https://www.example.com para https://example.com não está funcionando

2

Estou usando elastano para redirecionar solicitações HTTP para uma porta segura.

Desejo redirecionar todas as minhas solicitações para https://example.com .

Os seguintes cenários estão funcionando

  • http://www.example.com - > %código%
  • https://example.com - > %código%

No entanto,

  • http://example.com - > não funciona e redireciona para https://example.com

Estou usando as seguintes regras de reescrita

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

Eu peguei a ajuda do seguinte artigo para entender o caso de uso link

Pelo que entendi, a seguinte condição deve funcionar

RewriteCond %{HTTP_HOST} ^www\. [NC]
    
por karan 18.12.2017 / 15:10

1 resposta

1

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} .)

    
por 18.12.2017 / 19:02