when I visit the site:
https://example.cominstead ofhttps://example.com/in the browser address bar, I gethttps://example.com//.
Esses dois pedidos, com e sem a barra final, são realmente a mesma coisa. O navegador enviará a mesma solicitação ao seu servidor nos dois casos. Então, é difícil ver por que você obteria uma resposta diferente nesses dois casos, a menos que houvesse algum problema de cache local?
(Veja minha resposta para a seguinte pergunta na pilha do Pro Webmasters para obter mais informações sobre como o navegador lida com a barra no domínio: link )
No entanto, a diretiva RewriteRule no seu contêiner <VirtualHost *:80> sempre resultará em uma barra dupla - talvez você esteja vendo uma resposta armazenada em cache (ou preenchimento automático do navegador) dessa forma anterior ( errônea) redirecionar? Observe que os redirecionamentos 301 são armazenados em cache pelo navegador.
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
Em um contexto virtualhost , o $1 backreference irá capturar o prefixo de barra no caminho da URL (isso difere de um diretório ou .htaccess contexto).
Você precisa remover a barra na substituição ou retirar a primeira barra do padrão capturado (ou usar a variável REQUEST_URI server). Por exemplo:
RewriteRule ^/(.*) https://example.com/$1 [R=301,L]
(Não é necessário usar a âncora de fim de string, pois * é voraz por padrão.)
E verifique se o cache do seu navegador está limpo.