Tenho alguns subdomínios que quero redirecionar para portas específicas no mesmo servidor. Diga que eu tenho
dev.mydomain.com
Quero dev.mydomain.com
redirecionar de forma transparente mydomain.com:8080
e quero preservar o nome do subdomínio original no URL do navegador.
Como faço isso com o Apache 2.2? Eu tenho o Apache 2.2 rodando na porta padrão 80
. Não consigo descobrir a configuração de gravação para que isso aconteça.
Já configurei dev.mydomain.com
para resolver no DNS para mydomain.com
.
Isso é para um servidor de desenvolvimento de intranet que possui um endereço IP não roteável, portanto, não estou tão preocupado com explorações e segurança que comprometeriam um servidor público.
Solução
Aqui está o que eu finalmente consegui depois de ser colocado na direção certa por Miles Erickson. Eu queria que a barra de endereço refletisse o subdomínio/domínio original da solicitação e não o servidor e a porta redirecionados, mas ele me colocou no caminho certo para o Google criar uma solução usando
VirtualHost
e finalmente encontrei uma solução que incluía o uso demod_proxy
.Primeiro, verifique se
mod_proxy
está ativado:Em seguida, adicione o seguinte à configuração do seu site (por exemplo,
/etc/apache2/sites-available/000-default.conf
):Execute a seguinte linha no terminal (especifique seu domínio e nome de subdomínio corretamente)
Cole o código a seguir e altere conforme sua necessidade
Execute as seguintes linhas no terminal (especifique seu domínio e nome de subdomínio corretamente)
Supondo que dev.mydomain.com possa ser resolvido para o IP de mydomain.com, você pode adicionar o seguinte ao seu httpd.conf:
Documentação relevante do Apache:
Pergunta relacionada: Redirecionamento do Apache com base no nome do host
(Observação: a versão original desta resposta sugeriu incorretamente o uso de RedirectMatch, que, como @ChrisS apontou, não pode analisar a parte do domínio do URL.)
Adicione em sua configuração principal do vhost as seguintes linhas:
Observe que isso requer mod_proxy no Apache.
Você está procurando por mod_rewrite. Aqui está o link para a documentação do Apache que inclui muitos exemplos de configurações básicas e avançadas .
E se você não conseguir interpretar a documentação sozinho, tente adicionar isso ao httpd.conf:
E se isso não for um exemplo claro, aqui está um link para um guia para iniciantes do mod_rewrite também.