Como obter redirecionamentos do Apache 301 trabalhando com o Varnish?

1

Estou tentando adicionar vários redirecionamentos de domínios antigos a novos domínios que fiz antes de usar redirecionamentos 301 simples em meus arquivos vhost, como:

<VirtualHost *:8080>
  ServerName olddomain.com
  ServerAlias www.olddomain.com
  Redirect 301 / http://www.newdomain.com/
</VirtualHost>

No entanto, isso não está funcionando no meu arquivo vhost e estou assumindo que é por causa do servidor Varnish em execução na frente do Apache, mas não sei como corrigi-lo. O site principal, no mesmo arquivo vhost, está usando a mesma porta, ex:

<VirtualHost *:8080>
  ServerName www.newdomain.com
  ...

</VirtualHost>

O que estou perdendo? Eu tentei trabalhar com o arquivo de configuração do verniz para adicionar os redirecionamentos lá, mas tive problemas - essa é a melhor opção?

    
por schnippy 31.05.2013 / 05:00

1 resposta

1

Ainda não estou claro porque o vache do apache acima não estava sendo reconhecido, talvez devido a algo no arquivo vcl do verniz que o interceptou, mas eu consegui resolver isso adicionando um redirecionamento lá, seguindo as instruções aqui link

sub vcl_recv {
    if (req.http.host ~ "^(www\.)?oldexample\.com$") {
        error 750 "http://www.example.com/newlocation";
    } else if (req.http.host ~ "^(www\.)?ancientexample\.com$") {
        error 750 "http://newsite.com/ancient"
    }
 }

 sub vcl_error {
   if (obj.status == 750) {
       set obj.http.Location = obj.response;
       set obj.status = 302;  
       return(deliver);
   }
 }
    
por 03.06.2013 / 17:28