Apache / NginX passing request as PHP get variable

This is a very simple one, kinda works like rewriting. All page path requests will be passed to PHP though $_GET[‘page’]. Not the greatest implementation, but it works, and it works well. Everything else works as you would expect it.

To pass all requests inside /directory to /directory/index.php as ?page=/request

NGINX
site configuration
location /directory {
    index index.php;
    try_files $uri $uri/ /directory/index.php?page=$uri&$args;
}
APACHE
.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php?page=%{REQUEST_URI}&%{QUERY_STRING} [L]

So if I request:
http://domain.tld/directory/2017/january/25?1=2&3=4
NginX will pass it (in the background) to
/directory/index.php?page=/2017/january/25&1=2&3=4
and the $_GET superglobal in index.php will be equivalent to:

array {
    'page'  => '/2017/january/25',
    1       => 2,
    3       => 4
}