Redirect 301 ou RedirectMatch 301 não funciona para mim

1

Então, este é o meu cenário:

Eu tenho 1 IP estático e 2 servidores. 1 servidor é um servidor da web, o outro é um servidor de correio. Eu tenho um roteador como um firewall de hardware com todas as portas definidas que exigem passagem para endereços IP internos.

Se um usuário digitar o link da , ele verá o site. Se o usuário quiser acessar o webmail, digite o link , mas ainda assim verá link

Eu configurei o domínio do webmail para ser acessível pela porta 8080 no servidor de e-mail e, se o usuário digitar o link da URL não funciona, mas não com o link .

Então, este é o meu problema:

No meu httpd.conf, quero configurar um Redirect 301 para que, quando o usuário digita o link , ele seja redirecionado para link

Eu prefiro não usar o .htaccess e manter as diretivas no httpd.conf

Obrigado ...

    
por ricbax 20.06.2010 / 19:49

2 respostas

1

Você precisará criar um host virtual em seu servidor da web principal que responda a solicitações da web para o endereço "mail.domain.com". Dê uma olhada na documentação do Host virtual baseado em nome no site do Apache. Você também precisará de uma regra mod_rewrite para fazer o redirecionamento. Sua configuração seria algo como isto:

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName mail.domain.com
  RewriteEngine On
  RewriteRule (.*) http://mail.domain.com:8080/ [R=301,L]
</VirtualHost>
    
por 20.06.2010 / 20:18
1

Há pelo menos 2 maneiras de fazer isso:

  1. Crie 2 host virtual um para www.domain.com e outro para mail.domain .com e, em seguida, colocar sua diretiva RedirectMatch no segundo.
    Você também pode usar a diretiva ProxyPass no host virtual mail.domain.com para fazer funciona como um proxy reverso e tem mail.domaine.com:80 trabalhando diretamente sem redirecionamento

  2. Use o mod_rewrite como este para redirecionar somente o URL mail.domain.com com uma regra como essa

    RewriteCond% {HTTP_HOST} ^ mail.domain.com $ [NC]
    RewriteRule ^ (. *) link $ 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 ^ (. *) link $ 1 [P]

por 20.06.2010 / 19:59