
Então este é o meu cenário:
Tenho 1 IP estático e 2 servidores. 1 servidor é um servidor web e o outro é um servidor de correio. Eu tenho um roteador como firewall de hardware com todas as portas configuradas que exigem passagem para endereços IP internos.
Se um usuário digitar o URLhttp://www.domínio.comeles veem aquele site. Se o usuário quiser acessar o webmail ele digita a urlhttp://mail.domain.commas ainda vejohttp://www.domínio.com
Eu configurei o domínio do webmail para ser acessível através da porta 8080 no servidor de e-mail e se o usuário digitar o URLhttp://mail.domínio.com:8080funciona sem problemas, mas não comhttp://mail.domain.com.
Então este é o meu problema:
No meu httpd.conf eu quero configurar um Redirect 301 para que quando o usuário digitarhttp://mail.domain.comeles são redirecionados parahttp://mail.domínio.com:8080
Prefiro não usar .htaccess e manter as diretivas no httpd.conf
Obrigado...
Responder1
Você precisará criar um host virtual em seu servidor web principal que responda às solicitações da web para o endereço “mail.domain.com”. Dê uma olhada noHost virtual baseado em nomedocumentação no site do Apache. Você também precisará de uma regra mod_rewrite para fazer o redirecionamento. Sua configuração ficaria mais ou menos assim:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName mail.domain.com
RewriteEngine On
RewriteRule (.*) http://mail.domain.com:8080/\1 [R=301,L]
</VirtualHost>
Responder2
Há pelo menos duas maneiras de fazer isso:
Criar 2anfitrião virtualum para www.domain.com e outro para mail.domain.com e depois coloque sua diretiva RedirectMatch no segundo.
Você também pode usar oProxyPassdiretiva no host virtual mail.domain.com para fazê-lo funcionar como um proxy reverso e fazer com que mail.domaine.com:80 funcione diretamente sem redirecionamentoUse mod_rewrite assim para redirecionar apenas para o URL mail.domain.com com uma regra como essa
RewriteCond %{HTTP_HOST} ^mail.domain.com$ [NC]
RewriteRule ^(.*)http://mail.domain.com:8080/US$ 1 [R = 301]com mod_rewrite você também pode fazer um proxy reverso com uma regra como (mail.domain.com deve resolver para o IP interno)
RewriteCond %{HTTP_HOST} ^mail.domain.com$ [NC]
RewriteRule ^(.*)http://mail.domain.com:8080/US$ 1 [P]