Mapeamento de antigo para novo URL não está funcionando no Nginx

1

Estou movendo meu antigo URL para o novo (é mais de 50), então coloquei os URLs em um arquivo, mas o redirecionamento não está acontecendo.

map_hash_max_size 262144;
map_hash_bucket_size 262144;

map $uri $new {
    include /etc/nginx/maps/redirect_example_com.map;
}


if ($new) {
         rewrite ^ $new redirect;
        }

e abaixo, o URL está no arquivo redirect_example_com.map

/wp/articles  /aricles;

A mesma configuração está sendo usada em outro host virtual que está funcionando bem.

#map_hash_max_size 262144;
#map_hash_bucket_size 262144;


map $uri $new {
    include /etc/nginx/maps/redirect_hello_com.map;
}
 if ($new) {
         rewrite ^ $new redirect;
        }

Aqui não estou usando o tamanho do intervalo.

    
por Linuxian 15.10.2018 / 09:20

1 resposta

1

A diretiva map é colocada dentro do bloco http de uma configuração Nginx. E, embora você possa separar sua configuração em arquivos separados, o Nginx interpreta como um único documento contíguo.

Portanto, sua configuração é assim:

http {
    map $uri $new { ... }
    server {
        if ($new) { ... }
    }
    map $uri $new { ... }
    server {
        if ($new) { ... }
    }
}

Você deve renomear uma das variáveis $new para algo único. Consulte este documento para saber mais.

    
por 15.10.2018 / 10:50