Como redirecionar HTTP para HTTPS no mesmo httpd?


10

Aqui está o que eu tenho:

  • CentOS 5.4 (32 bits)
  • Apache httpd instalado (Versão do servidor: Apache / 2.2.11 (Unix))
  • mod_rewrite já apresenta

Pergunta: como redirecionar simples http://site.com para https://site.com que não usa o VirtualHost define?

PS: tentei encontrar respostas posteriores no SF, mas não encontrou uma solução agradável.

Obrigado.

Respostas:


9
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

2
RewriteRule ^(.*) https://%{HTTP_HOST}$1faz mais sentido para mim.
Cregox

Não será esse laço infinito em você?
Ernest Mueller

Não, apenas testei. É até como é recomendado nos documentos - veja o final.
Cregox

1
Recebo um loop infinito usando o Apache 2.4.10, implantado no Heroku, quando insiro esses comandos no meu .htaccess. E a variante sugerida por Cawas estranhamente manipula minha URL. Eu tentei um conjunto diferente de comandos: RewriteCond %{HTTP:X-Forwarded-Proto} !httpse RewriteRule ^/?(.*) https://%{SERVER_NAME}%{REQUEST_URI}- que funciona no Chrome e Firefox, mas falha no Safari e Opera. Curiosamente, se eu pegar as três linhas acima e omitir RewriteEngine On, não recebo mais o loop infinito, mas ele ainda falha no Safari e Opera (e funciona no Chrome e Firefox).
Purplejacket

2

Você pode usar mod_alias e Redirect com base no diretório O documento vinculado identifica detalhes adicionais.

<Directory /path/to/site>
   Redirect /service https://foo2.example.com/service 
</Directory>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.