Apache:Redirecionando de HTTP para HTTPS

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

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 =


 * Definindo a URL padrão no IBM HTTP Server Apache
 * Apache:Redirecionando para pagina de Erro
 * Apache:Redirecionando de HTTP para HTTPS
 * Linux e Unix: Ferramentas de Monitoracao e Performance
 * AWSTATS: Configurando o AWSTATS


 * Mais Artigos sobre Apache HTTP Server