NGINX + Symfony - на что перенаправляется внутренняя директива?

В официальной документации NGINX у них есть следующая конфигурация для Symfony производственного уровня:

# 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;
}

Полный файл конфигурации можно найти здесь

Что такое внутренний на самом деле перенаправление на? В комментариях говорится, что он удаляет фронт-контроллер из URI, но я не совсем уверен, как это сделать.

2
задан 3 June 2017 в 01:16
1 ответ

Он ничего не перенаправляет. Он определяет, как внешние перенаправления , то есть такие места, как http://example.com/app.php/some-path , должны обрабатываться; пока установлено, они должны возвращать 404 , разрешая только внутренние перенаправления . Условия, обрабатываемые как внутренние перенаправления, перечислены в документации для внутренней директивы :

Указывает, что данное расположение может использоваться только для внутренних Запросы. Для внешних запросов ошибка клиента 404 (не найдена) вернулся. К внутренним запросам относятся:

  • запросы, перенаправленные директивами error_page , index , random_index и try_files ;
  • запросы, перенаправленные полем заголовка ответа X-Accel-Redirect с вышестоящего сервера;
  • подзапросы, сформированные командой include virtual модуля ngx_http_ssi_module и посредством ngx_http_addition_module директивы модуля;
  • запросов, измененных директивой rewrite .
4
ответ дан 3 December 2019 в 09:58

Теги

Похожие вопросы