Reescreva a extensão incorreta do URL para .html no NGINX

1

Há algum tempo, cometi um erro ao escrever meus URLs e o Google os armazenou em cache em antigos sitemaps. Isso está criando uma tonelada de erros 404 no WMT que eu preciso limpar com uma reescrita sólida. Atualmente, uso o módulo de mapas e reescrevo cada produto individualmente.

Exemplo:

/product1html/ /product1.html;

O erro está em negrito aqui: link html /

O erro aqui é que eu esqueci inicialmente o. antes de html e tinha um / no final.

Como posso reescrever o URL como http://domain/productname.html para cada URL que se parece com /productnamehtml/ .

    
por Kanyin 16.03.2016 / 16:20

1 resposta

1

A reescrita ficará assim:

rewrite ^(.*[^.])html/?$ $1.html permanent;

Ou talvez você queira colocá-lo em um local:

location ~* ^(?<product>.*[^.])html/?$ {
    return 301 $product.html;
}

Explicação: Ambos os regex são idênticos, exceto que o último possui uma captura nomeada product . Procuramos por qualquer sequência que termine em um não-ponto seguido por html , seguido por (opcional) / . Tudo antes de o html ser capturado.

    
por 16.03.2016 / 16:43

Tags