A melhor maneira é codificar o nome do domínio (eu não sei quais nomes de domínio você pode ter, portanto esta é a opção preferida). Experimente esta regra:
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} !^(www\.)?secure\. [NC]
RewriteRule .* https://secure.example.com%{REQUEST_URI} [R=301,L]
As diferenças:
-
Em geral, é melhor verificar se o HTTPS está ativado, verificando a variável
%{HTTPS}
em vez de verificar o número da porta - você pode facilmente vincular o HTTPS desse site a outra porta e isso violará a regra (e você terá que editá-lo). Mas isso depende de suas circunstâncias particulares ... então cabe a você. -
Melhor que "Redirecionamento permanente 301" (
R=301
) em vez de "302 encontrado" (R
) - especialmente se o SEO estiver envolvido com essas URLs. Mas mais uma vez - não é uma coisa grande em geral. -
Você tem
.\
em seu padrão para correspondência de host - suponho que seja apenas um erro de digitação.
Se você não quiser que seu nome de domínio seja codificado, experimente esta regra, mas não posso garantir que funcionará 100% corretamente:
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} !^(www\.)?secure\.(.+)$ [NC]
RewriteRule .* https://secure.%2%{REQUEST_URI} [R=301,L]