Você pode querer resolver isso no nível do aplicativo. Você deve estar construindo um caminho completo para o novo local. Isso deve consistir em três componentes: o protocolo (https), o nome do host (do cabeçalho da solicitação) e o caminho (conforme exigido pelo aplicativo). Você pode querer uma classe de utilitário que construa links para o aplicativo para garantir a consistência.
Para links, você pode querer usar caminhos relativos. Estes serão enviados para o host de origem usando o protocolo que eles chegaram.
Redirecionar a solicitação resultante do redirecionamento ainda deixa você com conteúdo misto. Isso ocorre porque o redirecionamento inicial será http e não https.
No nível do servidor Apache, há um módulo que reescreverá os caminhos na resposta de http para https. Essa é uma maneira de corrigir links quebrados enviados por um aplicativo. No entanto, eu limitaria isso a aplicativos aos quais você não tem acesso.