Open
Description
Presently, including a script app.php
in a nginx-unit php application's definition causes any requests to that app to execute script
, ignoring $uri
and index
.
This causes a problem for a lot of configurations where virtual paths are used in the same namespace (prefixed path) as physical php files, e.g. given the following directory tree, there is no way to service all of the following requests without pre-enumerating all possible directory names or all possible filename patterns:
app-root/
├─ dir1/
│ ├─ index.php
│ ├─ script.php
├─ static-file.css
├─ main.php
"applications": {
"php": {
"type": "php",
"targets": {
"direct": {
"index": "index.php",
"root": "/var/www/app-root/"
},
"main": {
"index": "index.php",
"script": "main.php",
"root": "/var/www/app-root/"
}
},
- You can match
*.php
andpass
it toapplications/php/direct
to get URLs like/dir1/index.php
and/dir1/script.php
to work - You can use
share
with/path/to/app-root/
to load static files withtypes: [ "!*/*php" ]
, and setfallback
toapplications/php/main
which handles requests like/static-file.css
and virtual paths such as/this/path/isnt/real
that need to be mapped to/main.php
- But that breaks the execution of
/app-root/dir1
or/app-root/dir1/
becausescript
overrides both$uri
andindex
, meaning both those requests will be mapped to/app-root/main.php
and not/app-root/dir1/index.php