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.