Как проксировать все запросы на index.php без изменения URL на базе NGINX

Столкнулся с проблемой перенаправления всех url на index.php без перезаписи для дальнейшей обработки классом маршрутизатором в php.

Пример: http://localhost/public/page/

Результат в php при запросе $_SERVER['QUERY_STRING']: /public/page/

Что пробовал: rewrite и с флагами, и без, не особо помог, он меняет url.

Структура проекта

Контейнеры:

1

Часть кода файла default.conf (NGINX):

2


Ответы (1 шт):

Автор решения: Andru

Спасибо Гончарову Александру за помошь, вот такой default.conf получился)

server {
    listen ${NGINX_PORT};

    root /app/public;
    index index.php;

    server_name ${NGINX_SERVER};

    access_log /var/log/nginx/${NGINX_SERVER}.access.log;
    error_log /var/log/nginx/${NGINX_SERVER}.error.log;

    location / {
        try_files $uri $uri/ @mod_rewrite;
    }

    location @mod_rewrite {
        rewrite ^/(.*)$ /index.php?$1;
    }

    location ~ /\. {
        deny all;
    }

    location ~ \.php$ {
        fastcgi_pass php-fpm:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

server {
    server_name "~^www\.(.*)$";

    return 301 $scheme://$1$request_uri ;
}
→ Ссылка