具有不同根的nginx正则expression式位置不按预期工作

我有以下两条规则:

location / { root /var/www/default; } location ~* /myapp(.*)$ { root /home/me/myapp/www; try_files $uri $uri/ /handle.php?url=$uri&$args; } 

当我浏览到myapp/foo它的工作方式 – 错误logging为404: *3 open() "/var/www/default/handle.php" failed (2: No such file or directory) – so它处理的正则expression式匹配,但只是没有使用正确的文档根 – 这是为什么?

为了logging,我试图得到由第二个位置处理的/ myapp / *请求,其他所有事情都是第一个。

工作解决scheme应该是这样的

 location /myapp/ { root /home/me/myapp/www; try_files $uri $uri/ /myapp/handle.php?url=$uri&$args; } 

我用/myapp/replace正则expression式,因为这两个configuration应该正确地做这项工作。 然后,我将/handle.phpreplace为/myapp/handle.php因为try_files回退的绝对path应该是http://example.com/myapp/handle.php