Nginx rewrite in subfolder (404)

The accepted answer routes everything through index.php.
This will break certain script includes, the wp-admin script being one of them.

You can use:

location /blog/ {
    index index.php;
    try_files $uri $uri/ /blog/index.php?$args;
}

Um... Thank you for all comments and answer. But finally I use this method to get it works

location /blog {
    index index.php;
    rewrite ^/blog/(.*)+$ /blog/index.php?$1; # it finally works
    # return 200 $request_uri; # it is for inspect what $request_uri is
    # try_files $uri $uri/ /blog/index.php$request_uri$is_args$args; # it gets 500 server error
}

Please point out if current setting has any problems. thank you!