UPDATE: I found a way to make this work, you need to set your try_files as $uri $uri/ @app and then create location @app { rewrite /app/(.*)$ /app/index.php?/$1 last; } Very unintuitive, this took me approx 12 hours to resolve.by cezar - Ideas and Feature Requests
I thought this was a feature that NGINX could support, however from spending a couple days experimenting and stumping the folks in #nginx it appears that NGINX has some limitations that prevent this from working. For example, a nested PHP block for / is matched and executed rather than the nested PHP block for a subdirectory application. As location blocks don't allow for negate filters, there's nby cezar - Ideas and Feature Requests