Você precisa da regra www.
para remover o .html
, se presente. Você também não deve precisar da instrução if
na segunda reescrita:
#remove www from url
if ($host ~* ^www\.(.*)) {
set $remove_www $1;
rewrite ^(.*?)(\.html)?$ http://$remove_www$1 permanent;
}
location / {
rewrite ^(.+)\.html$ $1 permanent;
}