nginx regex localizações com raízes diferentes não funcionam como esperado

1

Eu tenho as duas regras a seguir:

location / {
    root /var/www/default;
}

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

Quando eu navego para myapp/foo ele funciona, o erro é registrado como um 404: *3 open() "/var/www/default/handle.php" failed (2: No such file or directory) - então, ele está manipulando a correspondência de regex, mas simplesmente não está usando o documento direito root-- por que isso é?

Para o registro, estou tentando obter pedidos / myapp / * manipulados pelo segundo local e tudo o mais no primeiro.

    
por Wells Oliver 21.10.2013 / 01:26

1 resposta

2

A solução de trabalho deve ser assim

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

Eu estou substituindo o regex por /myapp/ porque as duas configurações devem fazer o trabalho corretamente. Em seguida, substituo /handle.php to /myapp/handle.php porque o caminho absoluto de try_files fallback deve ser http://example.com/myapp/handle.php

    
por 08.12.2016 / 18:24

Tags