nginx + fpm + subdiretório

1

Eu tenho uma configuração nginx parecida com esta:

location ^~ /movies {
    alias /var/dp.cx/movies/current/public;
    fastcgi_index index.php;
    try_files $uri /movies/index.php;

    location ~* \.php {
        fastcgi_pass unix:/run/php/php7.1-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        include /etc/nginx/fastcgi_params;
    }
}

Esta é uma aplicação do Laravel, que funciona quase que completamente fora da caixa. No entanto, há alguns pequenos problemas que tenho com essa configuração.

  • Atingir /movies aciona um 404. Atingir /movies/ funciona com sucesso.
  • Atingir um dos URLs de paginação ( /movies/test?page=2 ) não possui informações da string de consulta.

Não tenho certeza de onde encontrei essa configuração, mas parece ser a coisa mais próxima de uma configuração "funcional" que já encontrei para o nginx + fpm com uma URL de subdiretório.

    
por Glen Solsberry 04.10.2017 / 02:10

1 resposta

0

Hitting /movies triggers a 404. Hitting /movies/ works successfully.

Para resolver isso no nível do servidor ... adicione o seguinte bloco de localização ao lado do bloco de localização existente para filmes ...

location = /movies {
  return 301 $scheme://$host/movies/;
}

Hitting one of the pagination URLs (/movies/test?page=2) has no information from the querystring.

É devido à try_files linha que não passa a string de consulta. Para passá-lo, usar a seguinte diretiva try_files funcionaria ...

try_files $uri /movies/index.php$is_args$args;

Citações diretas do link ...

$is_args - “?” if a request line has arguments, or an empty string otherwise.

    
por 05.10.2017 / 03:59