Suas reescritas estão usando expressões regulares e, curiosamente, estão configuradas para corresponder apenas a URLs específicos.
rewrite ^/product-category/1$ /;
rewrite ^/product/1$ /;
Assim, somente as URLs /product-category/1
e /product/1
corresponderiam a essas diretivas. Nem /product/2
nem /product/air-jordan-1-retro-high-og-banned-2016-release
corresponderão.
O que eu acho que você quer fazer é capturar o restante do URL e usá-lo no URL de destino.
rewrite ^/product-category/(.*) /$1;
rewrite ^/product/(.*) /$1;
Mas espere, tem mais! Você não especificou um sinalizador opcional para a diretiva rewrite
. Então, depois de reescrever a URL, o nginx continua em seu caminho através da configuração. Ele não inicia o processamento do pedido ou redireciona o agente do usuário. Isso pode fazer com que o WordPress fique confuso. Se você quiser redirecionar (por exemplo, para SEO), adicione o sinalizador apropriado.
rewrite ^/product-category/(.*) /$1 permanent;
rewrite ^/product/(.*) /$1 permanent;