我有以下两条规则:
location / {
root /var/www/default;
}
location ~* /myapp(.*)$ {
root /home/me/myapp/www;
try_files $uri $uri/ /handle.php?url=$uri&$args;
}
当我浏览myapp/foo
它时,它起作用了 - 有点,错误被记录为 404:*3 open() "/var/www/default/handle.php" failed (2: No such file or directory)
- 所以它处理正则表达式匹配,但只是没有使用正确的文档根目录 - 这是为什么?
为了记录,我试图让第二个位置处理 /myapp/* 请求,而让其他所有请求由第一个位置处理。
答案1
工作解决方案应该是这样的
location /myapp/ {
root /home/me/myapp/www;
try_files $uri $uri/ /myapp/handle.php?url=$uri&$args;
}
我将正则表达式替换为/myapp/
因为这两种配置都应该正确完成工作。然后我将替换/handle.php
为因为fallback/myapp/handle.php
的绝对路径应该是try_files
http://example.com/myapp/handle.php