NGINX + Symfony - para que está redirecionando a diretiva interna?

1

Nos documentos oficiais do NGINX, eles têm a seguinte configuração para Symfony em nível de produção:

# PROD
location ~ ^/app\.php(/|$) {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
   # When you are using symlinks to link the document root to the
   # current version of your application, you should pass the real
   # application path instead of the path to the symlink to PHP
   # FPM.
   # Otherwise, PHP's OPcache may not properly detect changes to
   # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
   # for more information).
   fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
   fastcgi_param DOCUMENT_ROOT $realpath_root;
   # Prevents URIs that include the front controller. This will 404:
   # http://domain.tld/app.php/some-path
   # Remove the internal directive to allow URIs like this
   internal;
}

O arquivo de configuração completo pode ser encontrado aqui

Para qual internal está redirecionando? Os comentários dizem que ele remove o front controller do URI, mas não tenho certeza de como.

    
por Major Productions 03.06.2017 / 00:16

1 resposta

3

Não redireciona nada. Ele especifica como redirecionamentos externos , ou seja, locais como http://example.com/app.php/some-path devem ser manipulados; enquanto configurados, eles devem retornar 404 , permitindo apenas redirecionamentos internos. As condições tratadas como redirecionamentos internos estão listadas na documentação da internal directive :

Specifies that a given location can only be used for internal requests. For external requests, the client error 404 (Not Found) is returned. Internal requests are the following:

  • requests redirected by the error_page, index, random_index, and try_files directives;
  • requests redirected by the X-Accel-Redirect response header field from an upstream server;
  • subrequests formed by the include virtual command of the ngx_http_ssi_module module and by the ngx_http_addition_module module directives;
  • requests changed by the rewrite directive.
    
por 03.06.2017 / 09:31