Como faço para redirecionar solicitações que chegam ahttps://blog.exemplo.comparahttps://example.com/blog?
Lendo os documentos do Apache sobre quando não usar o mod rewrite, tentei um redirecionamento simples, por exemplo
Redirect https://blog.example.com https://example.com/blog
Mas quando eu visitohttps://blog.exemplo.com, isso não me redireciona. Diz apenas erro com um certificado. Existe alguma possibilidade de redirecionar o subdomínio HTTPS? Está funcionando bem com HTTP quando uso algo assim:
<VirtualHost *:80>
ServerName blog.example.com
Redirect / https://example.com/blog/
</VirtualHost>
Condições como estas:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$
RewriteRule ^/(.*)$ https://example.com/%1/$1 [R=301,L]
Funciona apenas ao usar HTTP e não HTTPS...
Obrigado.
Responder1
Sua configuração se aplica a VirtualHost *:80
, em outras palavras, à http
porta. A porta https
é 443. Encontre essa configuração e aplique o redirecionamento lá também.
Responder2
Acho que você pode usar mod_alias para isso.
No seu blog.example.com Virtualhost:
RedirectMatch (.*)$ / https://example.com/blog/$1
Responder3
Se o navegador sinalizar um erro de certificado, isso interromperá a transaçãoanteso redirecionamento é acionado. Se você não usa HSTS, poderá confirmar clicando no erro e o redirecionamento continuará normalmente. O erro em si pode ocorrer por vários motivos, e o navegador informará qual se aplica, mas o mais provável é que seu certificado seja válido apenas example.com
e não tenha uma entrada SAN para blog.example.com
(ou para o curinga *.example.com
). Para corrigir isso, você pode regenerar o certificado para incluir esse nome adicional ou pode obter um certificado extra e ajustar a configuração do servidor para servir este para o subdomínio - em ambos os casos, o provedor de certificado (CA) escolhido deve ser capaz para ajudá-lo.