Apache:Redirecionando de HTTP para HTTPS

From Wiki

Como faço para redirecionar de HTTP para HTTPS no Apache?

A resposta é utilizar o mod_rewrite. Veja como:

Usando o mod_rewrite

Vá para o diretório /opt/IBM/HTTPServer/conf

> cd /opt/IBM/HTTPServer/conf

Edite o arquivo httpd.conf

Remova o comentário da linha

LoadModule rewrite_module modules/mod_rewrite.so

Vá para o final do arquivo e adicione como abaixo

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

Salve e feche o arquivo

Reinicie o http server

> /opt/IBM/HTTPServer/bin/apachectl restart

Exemplos

Debugando as requisições

Vamos debugar os redirecionamentos, jogando os logs para /var/log/apache2/rewrite.log .


RewriteEngine On
RewriteLog "/var/log/apache2/rewrite.log"
RewriteLogLevel 3
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}


Redirecionando todas as urls para https com excessão de um subdiretório

Vamos redirecionar todas as urls para https, com excessão de um subdiretório

 RewriteEngine On
 RewriteCond %{REQUEST_URI} !/subdiretorio
 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}
 

Ver também