NGinx redirecionamentos de nome de domínio

1

Digamos que eu tenha um site chamado xyz.co , eu também tenho outros nomes de domínio com o mesmo prefixo como xyz.com, xyz.it, xyz.co.it

Neste momento, o nginx funciona bem com server_name xyz.co em nginx.conf in port 80 Eu gostaria que todos os outros domínios fossem redirecionados para xyz.co Eu também gostaria que www.* das versões acima fossem redirecionadas para xyz.co . Como posso conseguir isso? Este nível de servidor da Web nginx é alterado? ou preciso fazer isso em DNS ?

    
por Srikar Appalaraju 29.11.2012 / 16:23

3 respostas

0
server {
        listen 80;
        server_name  www.xyz.co xyz.com xyz.it xyz.co.it www.xyz.com www.xyz.it www.xyz.co.it;
        rewrite   ^  http://xyz.co$request_uri? permanent;
}

server {
        listen 80;
        server_name  xyz.co;

        ....................
        ....................
        ....................
}

Você pode remover o permanent da diretiva rewrite se quiser um redirecionamento 302 em vez de um 301.

    
por 02.12.2012 / 09:44
3
server {
    server_name ~^(?:www\.)?xyz\.(?:com|(?:co\.)?it)$;
    return http://xyz.co$request_uri;
}

ou mais eficaz:

server {
    listen 80;
    server_name xyz.com www.xyz.com
                xyz.it www.xyz.it
                xyz.co.it www.xyz.co.it;

    return http://xyz.co$request_uri;
}
por 30.11.2012 / 01:07
-1

Documentação link

if ($http_host ~* "(www\.)?xyz\.(com|(co\.)?it)"){
  rewrite ^(.*)$ http://xyz.co/$1 break;
}

Isso precisará ser testado e modificado, mas alguns testes rápidos mostram que ele deve fazer o que você precisa.

UPDATE por referência fornecida por VBart: link é muito melhor método, para alcançar o que você precisa, ver a resposta fornecida.

    
por 29.11.2012 / 17:53