Есть правило, при котором nginx редиректит все запросы вида site.ru/catalog/aloha на site.ru/catalog/aloha.html
location ~ ^/catalog/([^\.]+)$ { return http://site.ru/catalog/$1.html; }
Но правильно корректно срабатывает только когда отсутствует слеш в конце URL