我有以下两条规则:
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