Redirecionando www para não www, mantendo o protocolo HTTP ou HTTPS
Estou tentando redirecionar www para não www para solicitações HTTP e HTTPS. Meu .htaccess raiz fica assim:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^(.*)$ http://example.com/$1 [R=301]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{SERVER_PORT} ^443
RewriteRule ^(.*)$ https://example.com/$1 [R=301]
Isso não está funcionando totalmente como esperado. O que acontece:
Visitandohttp://www.example.com
resulta em um redirecionamento parahttp://example.com
. Isso indica que minha primeira regra e condição estão funcionando, o módulo mod_rewite é hunky-dory e o .htaccess está ativado.
Visitandohttps://www.example.com
não resulta em um redirecionamento. Eu permaneço emhttps://www.example.com
Minha pergunta
Para que as regras de reescrita acima funcionem, meu servidor deve ter um certificado SSL? Atualmente não funciona e eu estou me perguntando se é por isso que as coisas não estão funcionando.