Isso tem nada a ver com o apache . Seu serviço http e seu serviço https estão em portas diferentes, e essa porta é especificada no cabeçalho TCP / IP pelo cliente . O Apache não está fazendo uma escolha arbitrária, está apenas fazendo o que deve fazer em resposta a uma solicitação específica feita em uma porta específica.
Em outras palavras, é o seu cliente net (o navegador) que está selecionando https quando você digita diretamente na barra de localização e omite o protocolo (http, ftp, https ...). Se você tiver um histórico nesse site, o navegador selecionará uma correspondência da lista interna.
Embora isso deva acontecer apenas com a digitação na barra de localização e não com links dentro do site, provavelmente é uma boa idéia colocar o site sem caminhos duplicados em diferentes protocolos para evitar confusão. Você ainda pode usar o mesmo nome de domínio, por exemplo, adicionar "seguro" no início do caminho ( https://my.domain/secure/rest-of-path
). Se o conteúdo que o apache está servindo deve ser literalmente o mesmo para https e http, use links simbólicos ou mod_rewrite (acho que é apropriado, não sou um grande apache) para fazer isso para que o usuário final e o cliente da Web vejam esses caminhos são diferentes.
Você pode configurar o apache para redirecionar solicitações http para a porta https e vice-versa, mas você saberia se você tivesse feito isso. Você provavelmente também seria capaz de encontrar evidências de tal redirecionamento nos logs do servidor, e você certamente poderia encontrá-lo observando a transação no wireshark.
Eu recomendo usar o wireshark para depurar e aprender sobre transações HTTP. As portas "source" e "destination" estão em "Transmission Control Protocol". Estes são definidos pelo remetente, não pelo destinatário. 80 é normalmente considerado http e 443 é https. É possível usar portas não-padrão para qualquer uma, mas nesse caso um cliente de rede normal deve ser explicitamente informado sobre qual porta usar (adicionando :NNN
ao endereço, por exemplo, https://my.domain:4040/path
), e obviamente o servidor deve ser configurado para atender essas portas explicitamente também.