Your question is unclear.
Do you wish to rewrite an URI (a location) to another (
Or do you wish to serve content for
/~user/app/whatever with the files contained at
nginx' configuration works differently from Apache's, that is a fact. Saying it is 'more confusion' is a personal feeling. I would object that, on the contrary of Apache, nginx allows to create lean, clean and order-independent configurations, guaranteeing readability, maintenance and scalability.
It is normal to be lost because there is a learning curve for every new technology you need to handle. I suppose Apache's configuration is not always straightforward and when you started with it, it was not that obvious how to deal with it...
.htaccess, it is mixing content with configuration, polluting repositories with files you then need to protect to avoid serving them...
nginx allows you as much granularity and modularity you wish through the use of the
include directive, which provides the nice feature of separating the configuration in multiple files, adding them manually where you wish inside the upper-level configuration and even include whole directories at once, allowing a per-server, per-whatever configuration file.
If you need specific rules for a location, just create
location block for it. And if you wish to isolate a whole branch from the locations tree in a separate configuration file, you can. This is a cleaner/more readable/more maintainable way of doing what
.htaccess was doing wrong.