fastcgi_split_path_info
Директива fastcgi_split_path_info используется для разделения URI на две части, что особенно полезно для передачи конкретной информации пути в приложения FastCGI. — NGINX HTTP Core
Описание
Директива `fastcgi_split_path_info` позволяет указать регулярное выражение, которое соответствует части URI запроса и разделяет его на два компонента: "script" и "path info". Это важно для приложений FastCGI, когда вы хотите направлять определённые запросы URI к конкретным скриптам, одновременно передавая остаточную информацию пути для обработки. Директива определяет, как парсится URI, и позволяет приложению эффективно обрабатывать запросы. Когда эта директива задана, сервер обрабатывает URI запроса в соответствии с указанным шаблоном, захватывая "script" и "path info" в переменные окружения `SCRIPT_NAME` и `PATH_INFO` соответственно. Эта функциональность позволяет разработчикам создавать чистые URL, одновременно позволяя их скриптам корректно работать с ожидаемыми входными данными. Предоставленное регулярное выражение должно быть тщательно сконструировано, чтобы адекватно захватывать требуемое; неправильные шаблоны могут привести к непредвиденному поведению или неверной маршрутизации запросов. Директива может использоваться внутри контекстов `http`, `server` и `location`, что делает её очень гибкой для использования на разных уровнях конфигурации NGINX. Важно убедиться, что указанное регулярное выражение соответствует синтаксису, используемому в NGINX, и не конфликтует с существующими маршрутами на вашем сервере.
Пример конфига
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}Убедитесь, что регулярное выражение корректно соответствует структуре URI, ожидаемой вашим приложением; в противном случае вы можете потерять информацию о пути.
Если несколько директив `fastcgi_split_path_info` определены в разных контекстах, NGINX может использовать правило, определённое в наиболее специфичном контексте, что может привести к путанице.